共通のフィールドで一致する値があるたびに、2 つのテーブルからレコードを結合します。
構文
FROM table1 INNER JOIN table2ON table1。field1compopr table2。Field2
INNER JOIN 操作には、次の指定項目があります。
| 引数 | 説明 |
|---|---|
| table1、table2 | 結合するレコードのあるテーブルの名前。 |
| field1、field2 | 結合されるフィールドの名前。 数値でない場合、フィールドは同じデータ型で、同じ種類のデータが含まれている必要がありますが、同じ名前を持つ必要はありません。 |
| 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 ステートメントでリンクすることもできます。
SELECT フィールド
FROM table1 INNER JOIN table2
ON table1。field1compoprtable2。field1 そして
ON table1。field2compoprtable2。field2)または
ON table1。field3compoprtable2。field3)];
次の構文を使用して、JOIN ステートメントを入れ子にすることもできます。
SELECT フィールド
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 の入れ子にすることはできません。