INNER JOIN 操作

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

共通のフィールドで一致する値があるたびに、2 つのテーブルからレコードを結合します。

構文

FROM table1 INNER JOIN table2 ON table1.field1compopr table2.field2

INNER JOIN 操作には、次の指定項目があります。

引数 説明
table1table2 結合するレコードのあるテーブルの名前。
field1field2 結合されるフィールドの名前。 数値でない場合は、フィールドは同じデータ型で同じ種類のデータを含む必要がありますが、同じ名前にする必要はありません。
compopr 任意の関係比較演算子: "="、"<"、">"、"<="、">="、"<>"

      

解説

INNER JOIN 操作は、任意の FROM 句で使用できます。 これは最も一般的な結合の種類です。 内部結合は 2 つのテーブルに共通するフィールドで一致する値があるたびに、両方のテーブルからレコードを結合します。

Departments テーブルと Employees テーブルで INNER JOIN を使用して、各部署のすべての従業員を選択できます。 これに対し、すべての部門 (従業員が割り当てられていない部門も含む) またはすべての従業員 (一部が部門に割り当てられていない場合でも) を選択するには、LEFT JOIN 操作または RIGHT JOIN 操作を使用して外部結合を作成できます。

メモまたは OLE オブジェクトのデータを含むフィールドを結合しようとすると、エラーが発生します。

同様の型の 2 つの数値フィールドを結合することができます。 たとえば、AutoNumber フィールドと Long フィールドは同様の型なので結合できます。 しかし、Single 型と Double 型のフィールドを結合することはできません。

次の例では、Categories テーブルと Products テーブルを CategoryID フィールドで結合する方法を示しています。

SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products
ON Categories.CategoryID = Products.CategoryID;

前の例では、CategoryID は結合フィールドですが、SELECT ステートメントに含まれていないため、クエリ出力には含まれません。 結合フィールドを含めるには、SELECT ステートメント (この場合は Categories.CategoryID) にフィールド名を含めます。

次の構文を使用して、複数の ON 句を JOIN ステートメントでリンクすることもできます。

フィールドの選択
FROM table1 INNER JOIN table2
ON table1.field1compoprtable2.field1 AND
ON table1.field2compoprtable2.field2)または
ON table1.field3compoprtable2.field3)];

次の構文を使用して、JOIN ステートメントを入れ子にすることもできます。

フィールドの選択
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON table3.field3compoprtablex.fieldx)]
ON table2.field2compoprtable3.field3)
ON table1.field1compoprtable2.field2;

LEFT JOIN または RIGHT JOIN は、INNER JOIN の入れ子にすることができますが、INNER JOIN は LEFT JOIN または RIGHT JOIN の入れ子にすることはできません。