首頁 >資料庫 >mysql教程 >SQL 中的內連接與外連接:有什麼區別?

SQL 中的內連接與外連接:有什麼區別?

Linda Hamilton
Linda Hamilton原創
2025-01-25 17:33:11719瀏覽

Inner vs. Outer Joins in SQL: What's the Difference?

剖析內連接和外連接

雖然SQL 連接提供了組合資料集的強大機制,但內連接和外連接之間的細微差別可能很神秘。本文深入探討了它們的獨特特徵,使您能夠全面了解這些連接類型。

內連接:與維恩圖相交

內連接,顧名思義,側重於兩個表 A 和 B 之間的共同點。它檢索在連接條件中共享匹配值的行。想像一個維恩圖,其中 A 和 B 代表圓圈:內部聯結提供位於圓圈重疊部分內的資料。

外部聯結:聯合維恩圖

與內部聯接相反連接、外連接包括所涉及的表的並集。它們試圖從至少一個表中檢索所有行,而不管另一個表中是否有匹配的行。產生的資料集類似於維恩圖的重疊和非重疊部分所涵蓋的整個區域。

外連接的變體:LEFT、RIGHT 和FULL

進一步細化以下概念外連接,SQL提供了三種變體:

  • 左外連接join: 此連線優先檢索左表(A) 中的所有行。對於右表 (B) 中缺少的匹配,它使用 null 值來表示空白。
  • 右外連接: 與左外連接類似,但此連接優先於右表 (B),為左表 (A) 中不匹配的行填充空值。
  • 完整外部join:此聯結包含兩個表中的所有行,對 A 或 B 中任何不匹配的行訴諸空值。

用範例進行說明

鞏固您的理解,讓我們考慮一個有兩個表 A 和 B的範例,每個表格都有一個欄位:

A B
1 3
2 4
3 5
4 6

內部連接:

SELECT * FROM A INNER JOIN B ON A.A = B.B;

輸出:

A B
3 3
4 4

輸出:

SELECT * FROM A LEFT OUTER JOIN B ON A.A = B.B;

輸出:

A B
1 null
2 null
3 3
4 4

輸出:

SELECT * FROM A RIGHT OUTER JOIN B ON A.A = B.B;

輸出:

A B
3 3
4 4
null 5
null 6
輸出:輸出:輸出:左外連接連接:輸出:右外連接:輸出:輸出:輸出:輸出:輸出:輸出:輸出:輸出:輸出:輸出:輸出: >

完全外連接:

SELECT * FROM A INNER JOIN B ON A.A = B.B;

輸出:

A B
1 null
2 null
3 3
4 4
null 5
null 6

了解不同類型的連接及其用例對於有效提取和組合至關重要來自各種來源的數據。因此,下次使用資料庫時,請記住內部聯結和外部聯接之間的區別,並利用它們的功能來建立精確且資訊豐富的查詢。

以上是SQL 中的內連接與外連接:有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn