どちらかにあれば残して結合 - FULL OUTER JOIN
左右どちらかにある行をすべて返し、もう片方が無ければ NULL で埋める結合
概念図
構文
sql
SELECT 列 FROM A FULL OUTER JOIN B ON A.key = B.keyサンプル
2 つのテーブルを突き合わせて、どちらか一方にしか無い行も含めて取得
sql
SELECT COALESCE(a.id, b.id) AS id, a.value, b.value
FROM table_a a
FULL OUTER JOIN table_b b ON b.id = a.id;FULL OUTER JOIN とは
FULL OUTER JOIN は 左右どちらの行も全て返す結合です。マッチしない側は NULL で埋められます。データの突合せ・差分検出によく使われます。
RDBMS による対応状況
- PostgreSQL / SQL Server / Oracle: ネイティブに
FULL OUTER JOINをサポート - MySQL / SQLite: 直接サポートなし。
LEFT JOINとRIGHT JOINをUNIONで繋ぐ書き換えが必要
