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 演算子は、両方の結合の結果を結合します。
次のデータを含む 2 つのテーブル "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 中国語 Web サイトの他の関連記事を参照してください。