2 つのテーブルのクロス・ジョインによって、両方のテーブルにあるローの組み合わせで可能なものすべてが生成されます。クロス・ジョインは、直積とも呼ばれます。
1 番目のテーブルの各ローは、2 番目のテーブルの各ローとともに 1 回だけ出現します。したがって、結果セットのローの数は、1 番目のテーブルにあるローの数と 2 番目のテーブルにあるローの数の積から、WHERE 句による制限で除外されたローの数を減算した数になります。
クロス・ジョインでは ON 句を使用できません。ただし、WHERE 句で制限を設けることはできます。
WHERE 句で追加した制限がある場合を除いて、両テーブルのすべてのローはいつでもクロス・ジョインの結果として表示されます。したがって、INNER、LEFT OUTER、RIGHT OUTER のキーワードは、クロス・ジョインには適用できません。
たとえば、次の文では 2 つのテーブルが結合されます。
SELECT * FROM A CROSS JOIN B; |
このクエリの結果セットには、A のすべてのカラムと B のすべてのカラムが含まれます。A の 1 つのローと B の 1 つのローの組み合わせそれぞれに対して、結果セットに 1 つのローがあります。A が n 個のロー、B が m 個のローである場合は、クエリによって n × m 個のローが返されます。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |