FROM 句の中で使用すると、ソース テーブルのレコードを結合します。
構文
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1compopr table2.field2LEFT JOIN 操作と RIGHT JOIN 操作には、次の指定項目があります。
引数 |
説明 |
table1、table2 |
結合するレコードのあるテーブルの名前。 |
field1、field2 |
結合されるフィールドの名前。 フィールドは同じ データ型 で、同じ種類のデータが含まれている必要がありますが、同じ名前を持つ必要はありません。 |
compopr |
"="、"<"、">"、"<="、">="、"<>" などのリレーショナル比較演算子。 |
解説
左外部結合を作成するには、LEFT JOIN 操作を使用します。 左外部結合では、結合する 2 つのテーブルのうち 2 番目 (右側) のテーブルに対応するレコードがなくても、1 番目 (左側) のテーブルのレコードがすべて追加されます。
右外部結合を作成するには、RIGHT JOIN 操作を使用します。 右外部結合では、結合する 2 つのテーブルのうち 1 番目 (左側) のテーブルに対応するレコードがなくても、2 番目 (右側) のテーブルのレコードがすべて追加されます。
たとえば、Departments テーブル (左側) と Employees テーブル (右側) がある場合に、社員が配属されていない部署も含めたすべての部署を選択するには、LEFT JOIN 操作を使用します。 どの部署にも所属しない社員も含めた全社員を選択するには、RIGHT JOIN 操作を使用します。
次の例では、Categories テーブルと Products テーブルを CategoryID フィールドで結合する方法を示しています。 このクエリでは、商品がまったくない商品区分も含めて、すべての商品区分の一覧が出力されます。
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
この例では、CategoryID は結合フィールドですが、SELECT ステートメントで指定されていないため、クエリ結果には含まれません。 結合フィールドを含めるには、フォールド名 (この場合は Categories.CategoryID) を SELECT ステートメントに指定します。
結合フィールドのデータが同じレコードのみを選択するクエリを作成するには、INNER JOIN 操作を使用します。
-
LEFT JOIN または RIGHT JOIN は、INNER JOIN の入れ子にすることができますが、INNER JOIN は LEFT JOIN または RIGHT JOIN の入れ子にすることはできません。 結合を他の結合にネストする方法については、INNER JOIN 操作に関するページのネストの説明を参照してください
-
複数の ON 句をリンクすることができます。 詳細については、INNER JOIN 操作に関するページのリンクの説明を参照してください。
メモまたは OLE オブジェクトのデータを含むフィールドを結合しようとすると、エラーが発生します。