1. ホーム
  2. sql

[解決済み] MySQLでFULL OUTER JOINを行うにはどうすればよいですか?

2022-03-24 23:14:37

質問

を行いたい。 完全外部結合 をMySQLで使用することができます。これは可能ですか?というのは 完全外部結合 は MySQL でサポートされていますか?

どのように解決するのですか?

を持っていない場合 フルジョイン は、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 演算子をセットして、クエリパターンで発生した重複行を削除します。 重複行が発生しないようにするためには アンチジョイン パターンを使用し、UNION ALL集合演算子を使用して2つの集合を結合します。より一般的なケースとして、完全な外側joinが重複行を返すような場合、このようにすることができます。

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