問題

また、LEFT JOINRIGHT JOINFULL JOINはどのように収まるのですか?

  ベストアンサー

重複のない列に参加していると仮定すると、これは非常に一般的なケースです。

  • AとBの内部結合は、A交差Bの結果、すなわち Venn図交差の内部部部分を与える。

  • AとBの外部結合は、A組合Bの結果、つまりVenn図結合の外部部部分を与えます。

単一の列を持つ2つのテーブルと、次のようなデータがあるとします。

 A    B
-    -
1    3
2    4
3    5
4    6
 

(1,2)はAに固有のものであり、(3,4)は一般的であり、(5,6)はBに固有のものであることに注意してください。

内部結合

同等のクエリのいずれかを使用する内部結合は、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
 

左外部結合

左外部結合は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
 

右外部結合

右外部結合はBのすべての行とAの共通の行を与えます

 select * from a RIGHT OUTER JOIN b on a.a = b.b;
select a.*, b.*  from a,b where a.a(+) = b.b;

a    |  b
-----+----
3    |  3
4    |  4
null |  5
null |  6
 

完全な外部結合

完全な外部結合は、AとBの結合、つまり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
 

  同じタグがついた質問を見る

sqldatabasejoininner-joinouter-join