クロス結合 【CROSS JOIN句】 交差結合
概要
クロス結合(CROSS JOIN句)とは、リレーショナルデータベースのテーブルを連結する操作の一つで、2つのテーブルの各行すべての組み合わせを求めるもの。関係演算における直積(デカルト積)を求める操作で、SQLではSELECT文などの中でCROSS JOIN句を用いる。テーブルAの各行に対して、テーブルBの各行を連結して結果表を求める。テーブルAがN行、BがM行ある場合、連結した結果はN×M行の長さになる。行数の多い表同士を連結すると極めて巨大な表となるため注意が必要である。
例えば、テーブルAが(ID,色)=(1,赤)(2,青)という2列2行、テーブルBが(ID,形)=(1,丸)(2,四角)という2列2行の場合、SQL文「SELECT * FROM テーブルA CROSS JOIN テーブルB」とすることで、(ID,色,ID,形)=(1,赤,1,丸)(1,赤,2,四角)(2,青,1,丸)(2,青,1,四角)という4列4行の表が得られる。
この例のように同じ名前の列がある場合は、列を指定する際に「テーブルA.ID」のようにテーブル名を併記して区別する。内部結合(INNER JOIN句)はクロス結合の結果から特定の条件に当てはまるものを絞り込んだものと考えることができる。
(2022.2.4更新)