トップページ >  Oracle SQL >  クロス結合
初版2006/07/28: 最終更新日2006/07/28
  クロス結合
目次
クロス結合
クロス結合
テーブルの結合をするにはfrom句でテーブルを複数指定します。テーブルはカンマ区切りで指定します。

select   *
from     table1,table2;

これでテーブルの結合が行われたことになります。
ただこのままだと結合する時の条件がありませんので、例えば、table1にレコードが8件、table2にレコードが4件存在したとすると、このSQLの結果は 8 * 4 = 32件 となります。
具体的に、table1とtable2が下図のような状態だとします。

クロス結合
クロス結合       
クロス結合
クロス結合

この2つのテーブルを無条件に結合するわけですから、table1のレコード1件(例えば氏名がyamadaのレコード)につきtable2のレコード4件がそれぞれ結合されたレコードができてしまいます。

<<無条件のため、氏名がyamadaのレコードにtable2のレコード全てが結合されている>>
クロス結合
クロス結合

この結果全部で32件表示されます。これを クロス結合 とよびます。

クロス結合とは、結合条件が存在ない結合のことをいいます。
クロス結合の書式は

select   列名
from     table1  join table2;

というようにjoinを指定して書くこともできます。これは

select   列名
from     table1,table2;

と同じです。
クロス結合は、table1のレコードが5件で、table2のレコードが8件の場合、検索結果は 5 * 8 = 40 となります。