はじめに
業務でクエリ文を書いてjoinの使い方のイメージが集合関係で考えるとわかりやすいと思ったので、それについてメモ
#結論
inner がつくjoinの仕方は集合論でいう「かつ」になる
outer がつくjoinの仕方は基準にするテーブルが全体集合としてjoinしたいテーブルのカラムがくっ付いた形になる
参考画像の2段目のような集合になる
参考画像は以下の通り
画像引用元
https://www.dofactory.com/sql/join
inner join
これは結論で書いたように結合したい条件を共に満たすテーブルを用意できる。
select * from A inner join B on <条件>
このコードでAというテーブルとBというテーブルをくっつける際に、条件を満たすデータしか用意しない。
満たさないデータは、テーブルから除ける
right outer join
これは、参考画像の2段目右側の画像のような集合になる。
select * from A right outer join B <条件>
このコードでAというテーブルとBというテーブルを右側のBテーブルを基準に条件を参照してくっつける。
基準にするときはBテーブルの全ての行を参照して条件を満たさないデータはNULLを入れてくっつける。
left outer join
これは、参考画像の2段目の左側のような集合になる。
select * from A left outer join B <条件>
これはright outer joinとほとんど同様で、
左側のAテーブルを基準に条件を参照してAとBテーブルをつなぐ。
基準にするときはAテーブルの全ての行を参照して条件を満たさないデータはNULLを入れてくっつける。