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