クロス結合の使用
更新 : 2006 年 4 月 14 日
WHERE 句がないクロス結合では、結合に含まれるテーブルのデカルト積が生成されます。デカルト積結果セットのサイズは、最初のテーブルの行数に 2 番目のテーブルの行数を掛けた値になります。Transact-SQL クロス結合の例を次に示します。
USE AdventureWorks;
GO
SELECT p.SalesPersonID, t.Name AS Territory
FROM Sales.SalesPerson p
CROSS JOIN Sales.SalesTerritory t
ORDER BY p.SalesPersonID;
この結果セットには、170 行が含まれます (SalesPerson
テーブルは 17 行、SalesTerritory
テーブルは 10 行あるので、17 に 10 を掛けると 170 行になります)。
ただし、WHERE
句を追加した場合、クロス結合の動作は内部結合の場合と同じになります。たとえば、次の 2 つの Transact-SQL クエリでは同じ結果セットが生成されます。
USE AdventureWorks;
GO
SELECT p.SalesPersonID, t.Name AS Territory
FROM Sales.SalesPerson p
CROSS JOIN Sales.SalesTerritory t
WHERE p.TerritoryID = t.TerritoryID
ORDER BY p.SalesPersonID;
-- Or
USE AdventureWorks;
GO
SELECT p.SalesPersonID, t.Name AS Territory
FROM Sales.SalesPerson p
INNER JOIN Sales.SalesTerritory t
ON p.TerritoryID = t.TerritoryID
ORDER BY p.SalesPersonID;
参照
概念
その他の技術情報
WHERE (Transact-SQL)
SELECT (Transact-SQL)
演算子 (Transact-SQL)
SELECT の例 (Transact-SQL)
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 4 月 14 日 |
|