我想知道以下查詢(使用兩種不同的聯接語法)之間的區別是什麼。我在一些我繼承的代碼中看到了這一點,並且好奇如果結果總是相同的。如果沒有,爲什麼你會使用一個在另一個。兩個TSQL聯接有什麼區別?
查詢#1實施例:
SELECT * FROM TableA a
INNER JOIN TableB b
INNER JOIN TableC c
ON b.TableBId = c.TableCId
ON b.TableBId = a.TableAId
查詢#2實施例:
SELECT * FROM TableA a
INNER JOIN TableB b
ON b.TableBId = a.TableAId
INNER JOIN TableC c
ON b.TableBId = c.TableCId
看看執行計劃是否有差異。 – 2012-04-13 20:07:44
您確定#1是有效的SQL。根據http://msdn.microsoft.com/en-us/library/ms177634.aspx我看不出如何工作。 – Alex 2012-04-13 20:12:16
@Alex是的,那是有效的SQL。這裏是小提琴顯示沒有執行錯誤:http://sqlfiddle.com/#!3/b00427/1 – 2012-04-13 20:15:13