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