今までJOIN構文をなんとなくで使ってきたので、INNER JOINとCROSS JOINの違いがよくわからないでいる今日この頃。 いまさらながら調べてみた。 CROSS JOIN: ON, USING を指定しない場合、左右のテーブルの直積を返します。 つまり、左右のテーブルにそれぞれ2行のレコード、3行のレコードが格納されている場合、結果は全てのレコードの組合せになり合計 2x3=6 行のレコードになります。 PostgreSQL や MySQL では ON, USING を指定すると INNER JOIN と等価になります。 SELECT * FROM table1 CROSS JOIN table2 は次の SQL 文と等価です。 SELECT * FROM table1, table2 また、PostgreSQL, MySQL では SELECT * FROM table1 CR