結合の使用
結合条件は、FROM 句または WHERE 句で指定できますが、FROM 句で指定することをお勧めします。WHERE 句や HAVING 句で検索条件を指定すれば、結合条件によって選択した行についてさらにフィルタ選択することができます。
結合には次のカテゴリがあります。
- 内部結合。=、<> などの比較演算子を使用する一般的な結合演算です。等結合や自然結合などがあります。
内部結合は、比較演算子を使用して、2 つのテーブルで共通する列の値に基づいて行を照合します。たとえば、students テーブルと courses テーブルで学生証番号が同じ行をすべて取得できます。 - 外部結合。外部結合は左、右、完全外部結合のいずれかになります。
外部結合は、FROM 句で指定する場合、次のキーワードのいずれかと共に指定します。- LEFT JOIN または LEFT OUTER JOIN
左外部結合の結果セットには、結合された列で一致するものだけでなく、LEFT OUTER 句で指定した左テーブルのすべての行も含まれます。左テーブルの行に右テーブルの行と一致するものがない場合、その結果セット行には、右テーブルからのすべての選択リスト列に NULL 値が格納されます。 - RIGHT JOIN または RIGHT OUTER JOIN
右外部結合は左外部結合の逆です。この場合、右側のテーブルの行がすべて返されます。右テーブル行に一致する行が左テーブルにない場合、左テーブルには NULL 値が返されます。 - FULL JOIN または FULL OUTER JOIN
完全外部結合は、左テーブルと右テーブル両方のすべての行を返します。他方のテーブルに一致する行がない場合、そのテーブルの選択リスト列には NULL 値が格納されます。テーブル間で一致した場合、結果セットのすべての行に、ベース テーブルのデータ値が格納されます。
- LEFT JOIN または LEFT OUTER JOIN
- クロス結合
クロス結合は左テーブルからすべての行を返します。左テーブルの各行は、右テーブルのすべての行と結合されます。クロス結合はデカルト積とも呼ばれます。
次の例は、販売員を兼務している従業員の名前を検索する内部結合です。
USE AdventureWorks;
GO
SELECT e.EmployeeID
FROM HumanResources.Employee AS e
INNER JOIN Sales.SalesPerson AS s
ON e.EmployeeID = s.SalesPersonID
内部結合または完全外部結合では、FROM 句のテーブルまたはビューを任意の順序で指定できます。左外部結合または右外部結合を使用する場合は、テーブルまたはビューを指定する順序が重要になります。左外部結合または右外部結合におけるテーブルの順序付けの詳細については、「外部結合の使用」を参照してください。
他の結合の使用方法の詳細については、次のトピックを参照してください。
参照
概念
その他の技術情報
演算子 (Transact-SQL)
CAST および CONVERT (Transact-SQL)
SELECT (Transact-SQL)