FROM 句の中で使用され、ソース テーブルのレコードを結合します。
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 compopr table2.field2
LEFT JOIN 操作および RIGHT JOIN 操作には、次の指定項目があります。
指定項目 | 内容 |
---|---|
table1、table2 | 結合するレコードのあるテーブルの名前。 |
field1、field2 | 結合するフィールドの名前。両方のフィールドのデータは同じデータ型で、かつ同じ種類である必要があります。ただし、同じ名前である必要はありません。 |
compopr | =、<、>、<=、>=、<> などの比較演算子。 |
左外部結合を作成するには、LEFT JOIN 操作を使用します。左外部結合では、結合する 2 つのテーブルのうち 2 番目 (右側) のテーブルに対応するレコードがなくても、1 番目 (左側) のテーブルのレコードがすべて追加されます。
右外部結合を作成するには、RIGHT JOIN 操作を使用します。右外部結合では、結合する 2 つのテーブルのうち 1 番目 (左側) のテーブルに対応するレコードがなくても、2 番目 (右側) のテーブルのレコードがすべて追加されます。
たとえば、[部署] テーブル (左側) と [社員] テーブル (右側) がある場合に、どの部署にも所属しない社員も含めた全社員を選択するには、RIGHT JOIN 操作を使用します。反対に、社員が配属されていない部署も含めたすべての部署を選択するには、LEFT JOIN 操作を使用します。
次の例では、[商品区分] テーブルと [商品] テーブルを "区分コード" フィールドで結合しています。このクエリでは、商品がまったくない商品区分も含めて、すべての商品区分の一覧が出力されます。
SELECT
区分名,
商品名
FROM
商品区分 LEFT JOIN
商品
ON
商品区分.
区分コード = 商品.
区分コード;
この例では、結合されるフィールドは "区分コード" フィールドですが、このフィールドは SELECT ステートメントで指定していないため、クエリの結果には含まれません。結合に使用したフィールドを含めるには、そのフィールド名を SELECT ステートメントで指定してください。上の例の場合は、フィールド名として "商品区分.区分コード"
を指定します。
メモ
結合フィールドのデータが同じレコードのみを選択するクエリを作成するには、INNER JOIN 操作を使用します。
LEFT JOIN および RIGHT JOIN は、INNER JOIN の中にネストすることができます。しかし、INNER JOIN を LEFT JOIN または RIGHT JOIN の中にネストすることはできません。結合をほかの結合にネストする方法の詳細については、「INNER JOIN 操作」のネストに関する説明を参照してください。
ON 句は複数連結できます。詳細については、「INNER JOIN 操作」の連結に関する説明を参照してください。
メモ型 (Memo) または OLE オブジェクト型 (OLE Object) のフィールドを結合しようとすると、エラーになります。
FROM 句 (Microsoft Jet SQL) | UNION 操作 (Microsoft Jet SQL) |
INNER JOIN 操作 (Microsoft Jet SQL) |