MySQLで完全外部結合

説明のために, 2つのテーブルを定義しておきます.

table1
id title
1 パーフェクトJava
2 パーフェクトJavaScript
3 パーフェクトPHP

 

table2
id price
2 3456
3 3888
4 3200

 

完全外部結合した結果のテーブル

table1
id title id price
1 パーフェクトJava NULL NULL
2 パーフェクトJavaScript 2 3456
3 パーフェクトPHP 3 3888
NULL NULL 4 3200

 

FULL OUTER JOIN句が利用可能なデータベースであれば,

SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.id = table2.id

これで片付くのですが, MySQLではFULL OUTER JOIN句をサポートしていないので, 左外部結合 (LEFT OUTER JOIN) と 右外部結合 (RIGHT OUTER JOIN) の結果の和集合 (UNION) をとることで, 完全外部結合を実現します.

SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.id = table2.id UNION SELECT * FROM table1 RIGHT OUTER JOIN table2 ON table1.id = table2.id

コメントを残す