[英]What's the difference between the two TSQL Joins?
我想知道以下查詢(使用兩種不同的連接語法)之間的區別是什么。 我在一些代碼中看到了這個,我被繼承了,如果結果總是一樣的話,我很好奇。 如果沒有,為什么你會使用一個而不是另一個。
查詢#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
如前所述,您可以查看執行計划以驗證這些查詢確實是相同的。 但我幾乎可以肯定他們是
更多的是你為什么選擇一個而不是另一個的問題。 我會說這取決於風格偏好。 大多數情況下,您會看到查詢#2,因為它對未來的讀者有更清晰的定義。 如果您創建了一個真正復雜的查詢,那么您獲得的收益將大大增加。
我真的不能保證其他方法,因為我真的相信它變得太難以理解,永遠不會被使用。 再次,這是我的意見,推理歸結為意見/風格。
但是 ,標准方式是query2,所以我會堅持下去:))但是,再次,只是我
嘗試預覽執行計划 。 它很可能完全一樣。
查詢的執行計划完全相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.