MySQLでFULL OUTER JOINを実行するにはどうすればいいですか? 質問する

MySQLでFULL OUTER JOINを実行するにはどうすればいいですか? 質問する

私はやりたい完全外部結合MySQL で。これは可能ですか? MySQL では完全外部結合がサポートされていますか?

ベストアンサー1

MySQLでは完全な結合はできませんが、彼らを真似する

コードサンプルは以下から転記されていますこのStack Overflowの質問あなたが持っている:

2つのテーブルt1、t2の場合:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id

上記のクエリは、完全な外部結合操作で重複行が生成されない特殊なケースで機能します。上記のクエリはUNION、クエリ パターンによって導入された重複行を削除するためにセット演算子に依存しています。2番目のクエリに反結合パターンを使用し、次に UNION ALL セット演算子を使用して 2 つのセットを結合することで、重複行の導入を回避できます。より一般的なケース、つまり完全な外部結合で重複行が返される場合は、次のようにします。

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
WHERE t1.id IS NULL

おすすめ記事