什麼是使用一個連接的ON子句中像這樣利用2個謂詞與OR性能的影響:性能比較加入1個謂詞每個
SELECT GS.GuitarType,GD,GuitarColor
FROM Prod.Guitars GS
LEFT JOIN Prod.Guitar_Detail GD ON (GS.GuitarID = GD.GuitarID OR GS.GuitarID = GD.GuitarCatNum)
VS.是這樣的:
SELECT GS.GuitarType,GD,GuitarColor
FROM Prod.Guitars GS
LEFT JOIN Prod.Guitar_Detail GD ON GS.GuitarID = GD.GuitarID
LEFT JOIN Prod.Guitar_Detail GD2 ON GS.GuitarID = GD.GuitarCatNum
夫婦的注意事項: 我們必須使用LEFT JOIN不能使用INNER。 我已經跑了兩個查詢,後者表現更好。
還有一個問題,第二個不會返回更多的行嗎?因爲它們都在同一張桌子上加入,所以它們都應該只保留GS表格?
在第一個查詢中,它是否必須匹配兩次?或者爲什麼它的表現與第二種不同?
如果有1對1的關係,你會得到相同的行數。 – jarlh
'Guitar_Detail'表的主鍵是什麼? –
注意在第二個查詢中,您從不會從第二次連接獲取任何數據。 – HLGEM