【Access】テーブル間の結合で、値が一致しない行も表示させる方法(結合のプロパティ/JOIN)

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

AccessやSQLの学習を進める中で、テーブル間の結合(JOIN)の仕組みや、値が一致しない行も含めてデータを取得する方法について確認したときのメモです。

テーブルを結合する際、双方に一致するデータだけでなく、片方のテーブルにしか存在しないレコードもすべて表示させたい場合には「結合のプロパティ」を変更します。

サンプルテーブルの構成

確認用に、キー項目となるフィールド F1 を持つ 2 つのテーブル T1 と T2 を用意します。

T1 のデータ例

  • F1: 1234 / F2: あああああ
  • F1: 1235 / F2: いいい
  • F1: 1237 / F2: ううう

T2 のデータ例

  • F1: 1237 / F2: ABCD

結合のプロパティによる違い

クエリのデザインビューで結合線を変えることで、生成されるSQLと取得結果が変化します。

1. 両方のテーブルの結合フィールドが同じ行だけを含める(内部結合)

T1 と T2 の両方に存在する行(F1 が 1237 の行)のみが抽出されます。

SELECT T1.*, T2.F2
FROM T2 INNER JOIN T1 ON T2.F1 = T1.F1;

2. T2の全レコードとT1の同じ結合フィールドのレコードだけを含める(左側外部結合)

T2 の全レコードを基準に、一致する T1 のレコードを結合します。

SELECT T1.*, T2.F2
FROM T2 LEFT JOIN T1 ON T2.F1 = T1.F1;

3. T1の全レコードとT2の同じ結合フィールドのレコードだけを含める(右側外部結合)

T1 の全レコードをすべて表示し、一致する T2 のデータがない場合は空欄(Null)として取得します。仕事などで「一致しない行も含めてすべて出したい」という場合は、この設定を利用します。

SELECT T1.*, T2.F2
FROM T2 RIGHT JOIN T1 ON T2.F1 = T1.F1;

まとめ

Accessのクエリデザイナで結合プロパティを変更すると、裏側で対応するSQL(INNER JOIN、LEFT JOIN、RIGHT JOIN)が自動生成されます。SQLの構文を直接書かなくても、画面上の操作だけで直感的に外部結合を実現できるのは便利です。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月30日

  • 変更複雑で可読性の低いHTMLタグによるテーブル表現を整理し、現在のWeb標準に合わせた見やすい構成に変更しました。

文書情報

記事タイトル
【Access】テーブル間の結合で、値が一致しない行も表示させる方法(結合のプロパティ/JOIN)
作成日
更新日
Source URL
https://papanda925.com/?p=450

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました