MySQLでテーブルの外部結合をする際に
FULL JOINみたいなことしたくて知らべたロジックです。
コードはそのまま、下記サイトのパクリですが
【MySQL】left join, right joinを同時にしたい full joinみたいなん。
コード
SELECT * FROM [対象テーブル1] AS tb1 LEFT JOIN [対象テーブル2] AS tb2 ON [結合条件] UNION DISTINCT ( SELECT * FROM [対象テーブル1] AS tb1 RIGHT JOIN [対象テーブル2] AS tb2 ON [結合条件] )
解説
基本は対象テーブルに対して
[LEFT JOIN]と[RIGHT JOIN]の結果を
[UNION]するという流れです。
ただし、[UNION]するタイミングで
[DISTINCT]で一意取得処理をしないと
それぞれの結果でダブリがあるものは
2回取得されるので注意が必要です。