重複のない列で結合していると仮定すると、これは最も一般的なケースです。
例:
2 つのテーブルがあり、それぞれに 1 つの列があり、次のようなデータがあるとします。
A B
- -
1 3
2 4
3 5
4 6
(1,2) は に固有A
、(3,4) は共通、(5,6) は に固有であることに注意してくださいB
。
Inner join
:
同等のinner join
クエリのいずれかを使用すると、2 つのテーブルの共通部分、つまり共通の 2 つの行が得られます。
select *
from a
INNER JOIN b on a.a = b.b;
select a.*,b.*
from a,b
where a.a = b.b;
a | b
--+--
3 | 3
4 | 4
Left outer join
:
Aleft outer join
は、A のすべての行に加えて、B の共通の行を返します。
select *
from a
LEFT OUTER JOIN b on a.a = b.b;
select a.*,b.*
from a,b
where a.a = b.b(+);
a | b
--+-----
1 | null
2 | null
3 | 3
4 | 4
Full outer join
:
Aはandfull outer join
の結合、つまり A のすべての行と B のすべての行を返します。A の何かが B に対応するデータを持たない場合、B の部分は null であり、その逆も同様です。A
B
select *
from a
FULL OUTER JOIN b on a.a = b.b;
a | b
-----+-----
1 | null
2 | null
3 | 3
4 | 4
null | 6
null | 5