2017-07-27 68 views
-2

我目前正在試圖優化在VB格式一些SQL查詢(古代的,我知道),但我只是試圖讓查詢更有效。 這是怎樣的一些疑問,現在一個例子:目前試圖優化SQL查詢

SELECT DISTINCT Appointments.WithID, Users.LastName, Users.FirstName 
FROM Appointments INNER JOIN AppointmentTypes ONAppointmentTypes.ID = 
Appointments.AppTypeID 
INNER JOIN Users ON Users.ID = Appointmens.WithID 
WHERE Appointments.Hide = 0 
ORDER BY Users.LastName, Users.FirstName 

以上是運行,那麼對於所有的結果,這一般是返回Appointments.WithID,A每個循環發生的初始查詢每個地方的另一個查詢運行,例如以下項目:

SELECT Appointments.CustomerID FROM Appointments 
WHERE Appointments.Hide = 0 
AND Appointments.WithID = (And this is where the "Appointment.WithID's 
from the previous query are entered) 

所以我不知道如果我解釋這個正確或沒有,但所有的一切,第二個查詢運行了多次針對每個Appointment.WithID這是從第一個查詢中找到的。我需要一種方法,可以將第二個查詢合併到第一個查詢中,以便它不會運行第二個查詢數百次,具體取決於返回的WithID的數量。

+2

添加appointments.customerId到第一查詢。 –

+2

僅僅包括客戶ID成'SHOW CREATE TABLE Appointments'第一查詢 –

+0

後的結果。創建一些示例數據和預期結果。 –

回答

1

不能你只是appointments.customerid添加到您的select語句?

+0

Upvoted讓這個人的代表高到足以發表評論。 –

+3

相同的評論已經寫了兩次。無需再次將其作爲答案發布。 –

+1

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/16851031) –