クロス結合の使用

クロス結合の使用

WHERE 句がないクロス結合では、結合に含まれるテーブルのデカルト積が生成されます。デカルト積結果セットのサイズは、最初のテーブルの行数に 2 番目のテーブルの行数をかけた値です。次の例は、Transact-SQL クロス結合を示しています。

USE pubs
SELECT au_fname, au_lname, pub_name
FROM authors CROSS JOIN publishers
ORDER BY au_lname DESC

結果セットは 184 行となります。authors が 23 行、publishers が 8 行なので、23 × 8 = 184 です。

ただし、WHERE 句を追加した場合、クロス結合は内部結合と同じ動作をします。たとえば、次の Transact-SQL クエリは同じ結果セットを生成します。

USE pubs
SELECT au_fname, au_lname, pub_name
FROM authors CROSS JOIN publishers
WHERE authors.city = publishers.city
ORDER BY au_lname DESC

または
USE pubs
SELECT au_fname, au_lname, pub_name
FROM authors INNER JOIN publishers
ON authors.city = publishers.city
ORDER BY au_lname DESC

関連項目

式内の演算子の使用

表示: