簡體   English   中英

兩個TSQL連接之間有什么區別?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM