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標準に合わせた見やすい構成に変更しました。

