MySQL FULL JOIN?
在 MySQL 中,不直接支援 FULL JOIN 操作。但是,使用 LEFT JOIN 和 RIGHT JOIN 的組合可以獲得類似的結果。具體操作方法如下:
SELECT t1.column1, t2.column2 FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.id = t2.id UNION ALL SELECT t1.column1, NULL FROM table1 AS t1 RIGHT JOIN table2 AS t2 ON t1.id = t2.id WHERE t2.id IS NULL
在此查詢中,LEFT JOIN 會擷取 table1 中的所有行,並根據 id 列將它們與 table2 中的對應行進行比對。 RIGHT JOIN 會擷取 table2 中的所有行並將它們與 table1 中的對應行進行比對。 UNION ALL 運算子組合兩個連接的結果。
假設我們有兩個表,“Persons”和“Orders”,其中包含以下數據:
Persons | ||
---|---|---|
P_Id | LastName | FirstName |
1 | Hansen | Ola |
2 | Pettersen | Kari |
3 | Svenson | Tove |
Orders | |
---|---|
OrderNo | P_Id |
22456 | 1 |
24562 | 1 |
77895 | 2 |
44678 | 2 |
34764 | 3 |
To使用上述查詢得到以下結果:
LastName | FirstName | OrderNo |
---|---|---|
Hansen | Ola | 22456 |
Hansen | Ola | 24562 |
Pettersen | Kari | 77895 |
Pettersen | Kari | 44678 |
Svenson | Tove | 34764 |
只需將table1 替換為「Persons」和table2 中包含「Orders」的查詢並執行它。
以上是MySQL如何實現FULL JOIN效果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!