Join

SQL 連接和關係

  • October 31, 2018

我對連接感到困惑。我想知道如何根據表之間的關係來選擇join,或者join是否不依賴於關係?

  1. 如果關係是“一對一”,那麼“內連接”是最好的。
  2. 如果關係是“一對多”,那麼?
  3. 如果關係是“多對一”,那麼?
  4. 如果關係是“多對多”,那麼左連接是最好的。

與其考慮“基於關係多重性的連接類型”,不如開始考慮如果沒有對應關係時想要發生的連接類型。這是一個更有用的起點。

傑夫阿特伍德的這篇文章。正如您在他的查詢旁邊的範例結果中看到的那樣,inner joins減少結果的數量並outer joins允許更多的結果進行比較。這兩種情況都可能有用。

一般來說,由於性能原因inner joins應該首選outer joins,但是如果沒有匹配,則需要哪種類型的連接的驅動力是您想要發生的事情。同樣根據我的經驗,普遍偏愛left outer joinsover right outer joins

與生活中的任何事情一樣,都有警告和陷阱,但這是一個更好的起點。

另一個有用的視覺化:SQL 連接很簡單

CL Mofat 的 Visual SQL 連接

引用自:https://dba.stackexchange.com/questions/111908