LEFT JOIN、RIGHT JOIN 操作

FROM 句の中で使用され、ソース テーブルのレコードを結合します。

構文

FROM table1 [ LEFT | RIGHT ] JOIN table2
    ON table1.field1 compopr table2.field2

LEFT JOIN 操作および RIGHT JOIN 操作には、次の指定項目があります。

指定項目 内容
table1table2 結合するレコードのあるテーブルの名前。
field1field2 結合するフィールドの名前。両方のフィールドのデータは同じデータ型で、かつ同じ種類である必要があります。ただし、同じ名前である必要はありません。
compopr =、<、>、<=、>=、<> などの比較演算子。

解説

左外部結合を作成するには、LEFT JOIN 操作を使用します。左外部結合では、結合する 2 つのテーブルのうち 2 番目 (右側) のテーブルに対応するレコードがなくても、1 番目 (左側) のテーブルのレコードがすべて追加されます。

右外部結合を作成するには、RIGHT JOIN 操作を使用します。右外部結合では、結合する 2 つのテーブルのうち 1 番目 (左側) のテーブルに対応するレコードがなくても、2 番目 (右側) のテーブルのレコードがすべて追加されます。

たとえば、[部署] テーブル (左側) と [社員] テーブル (右側) がある場合に、どの部署にも所属しない社員も含めた全社員を選択するには、RIGHT JOIN 操作を使用します。反対に、社員が配属されていない部署も含めたすべての部署を選択するには、LEFT JOIN 操作を使用します。

次の例では、[商品区分] テーブルと [商品] テーブルを "区分コード" フィールドで結合しています。このクエリでは、商品がまったくない商品区分も含めて、すべての商品区分の一覧が出力されます。

SELECT 区分名, 商品名

FROM 商品区分 LEFT JOIN 商品

ON 商品区分.区分コード = 商品.区分コード;

    

この例では、結合されるフィールドは "区分コード" フィールドですが、このフィールドは SELECT ステートメントで指定していないため、クエリの結果には含まれません。結合に使用したフィールドを含めるには、そのフィールド名を SELECT ステートメントで指定してください。上の例の場合は、フィールド名として "商品区分.区分コード" を指定します。


メモ

結合フィールドのデータが同じレコードのみを選択するクエリを作成するには、INNER JOIN 操作を使用します。

メモ型 (Memo) または OLE オブジェクト型 (OLE Object) のフィールドを結合しようとすると、エラーになります。


参照
FROM 句 (Microsoft Jet SQL) UNION 操作 (Microsoft Jet SQL)
INNER JOIN 操作 (Microsoft Jet SQL)  

使用例

LEFT JOIN、RIGHT JOIN 操作の使用例