mysqlで、複数テーブルを完全外部結合したい

SQLと書かれたタイトル SQL

こんにちは。ぽこです!

今回は、MySQLで、複数テーブルをfull outer joinのように完全外部結合する方法について紹介します。

はじめに

MySQLにはfull outer join の機能がありません。そのため、別の方法を使ってその動きを再現する必要があります。

left joinとright joinを使用してfull outer joinを再現する

left joinとright joinを使用してfull outer joinを再現する方法は、次のようになります。

これは、full outer join を使った、次のSQLと同等のものになります。

では、これを3つのテーブルについて行いたい場合はどうなるでしょうか?イメージはこちらになります。

 書いてみると、次のようになります。

full outer joinを使った場合の3倍になっていることが分かります。

このように、複数のテーブルを結合する場合、テーブルの数倍のSQLが必要になりますが、すべてのテーブルを基準に置くことで、解決できます。

タイトルとURLをコピーしました