クロス結合

テーブルの結合をするには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 となります。


初版2006/07/28 :最終更新2006/07/28
HOME