首頁  >  文章  >  資料庫  >  Mysql怎麼實現全外連接

Mysql怎麼實現全外連接

PHPz
PHPz轉載
2023-05-31 08:37:552540瀏覽

    MySql中多表查詢只提供了內連接,左外連接與右外連接:

    table_reference {[INNER] JOIN | {LEFT|RIGHT} [OUTER] JOIN} table_reference ON conditional_expr

    1】INNER JOIN ON內連接(只寫join時預設為內連接)

    SELECT * FROM emp e JOIN dept d ON e.deptno=d.deptno;

    Mysql怎麼實現全外連接

    2】外連接

    在左外連接和右外連接時都會以一張表為基表,該表的內容會全部顯示,然後加上兩張表格相符的內容。

    如果基底表的資料在另一張表沒有記錄。

    那麼在相關聯的結果集行中列顯示為空值(NULL)。

    2.1、左外連接:顯示左表的完整記錄

    SELECT * FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno;

    Mysql怎麼實現全外連接

    #2.2、右外連接:顯示右表的完整記錄

    SELECT * FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;

    Mysql怎麼實現全外連接

    2.3、全外連接

    左表和右表都不做限制,所有的記錄都顯示,兩表不足的地方用null 填充;

    也就是:

    • 左外連接=左表全部記錄相關聯結果

    • 右外連接=右表全部記錄相關聯結果

    • 全外連接=左表全部記錄右表全部記錄相關聯結果=左外連接右外連接-相關聯結果(即去重複)

    那麼在MYSQL中誰可以做到呢? 

    UNION

    UNION 運算子用於合併兩個或多個 SELECT 陳述式的結果集。

    註解:預設地,UNION 運算子選取不同的值。如果允許重複的值,請使用 UNION ALL。

    故實現全外連接可以使用:

    SELECT * FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno
    UNION
    SELECT * FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;

    Mysql怎麼實現全外連接

    #註解:以上連接全為等值連接;Oracle中全外連接可以使用full join;請不要弄混。

    以上是Mysql怎麼實現全外連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除