
#35 Accessのテーブル左結合をもう少し深堀しよう!
Excelユーザー必見!Accessクエリで業務効率を飛躍的に向上させる方法を、図解入りでわかりやすく解説中。
必ずチェックして、業務を効率化しよう!
前回説明したAccessテーブルの左結合リレーションについてもうちょっと深堀りしてみましょう。
前回ふりかえり
↓
1.左結合の基本

AテーブルからBテーブルへ向けて→が向いていますね。
前回の例では↓の画像にあたります。

この場合は、Aテーブルのすべてのデータと、Aテーブルとキーで合致するBテーブルが表示されます(便宜上Excelでイメージ表を作図しています↓)。

表示されるデータは、上のように、AテーブルのNo.1~6と、Bテーブルに合致する1~4が結合されます。
ここは理解できるかなと思います。
2.複数のテーブルとの左結合
つぎに3つ以上の左結合の場合をみてみましょう。

・Aのデータ全部
・Aと突合するBのデータ
・Bのデータと突合するCのデータ
となります。
間違えてほしくないのは、CはAのデータと突合するのではなく、Bのデータとしか突合しない点にあります。

Bは1~4のキーがあります。Cはそのうち1~3が突合できるのが分かりますね。段階的な結合です。
左から右へ矢印が向いているイメージ、分かっていただけますでしょうか?
3.複数のテーブルへの左結合
こんどは、次のパターンも考えられます。

先ほどはBの配下にCがあるような左結合でした。
こんどはAの配下にB、Aの配下にCがあるような左結合になります。

抽出されるイメージは上の画像になります。
テーブルCは5と6のキーを持っています。
テーブルAとテーブルCが直接左結合することで、先ほどは表示されていなかった行が表示されたのです。
4.右結合は使わなくてよい
テーブル結合には左結合だけではなく右結合も存在します。
テーブル結合方法のおさらいです。

デザインビューで結合線を右クリックします。

テーブルの結合線を右クリックすると、「結合プロパティ」が表示されます。
2を選ぶと左結合に、3を選ぶと右結合になりますが、操作のコツとして右結合はできる限り避けることがおすすめです。
常に左のテーブルから右のテーブルへの結合を行うことで、操作がスムーズになり、混乱を避けられます。
私は長年Accessのクエリを扱っていますが、右結合を避けることで操作がシンプルになり、連結構成も分かりやすくなります。
もしクエリに問題があっても、その原因を見つけやすくなります。
このポイントは非常に重要なので、覚えておいてくださいね。
5.連続する左結合の注意点
上の「2.複数のテーブルとの左結合」では3つのテーブルが左から右に連なって左結合しています。
超重要事項がありますので良く理解してください。
左結合したら次の結合も必ず左結合を用いることが鉄則になります。
なぜなら、結合の理論上これ以外の結合は考えられないからなのです。

AからBが左結合なのでBからCも絶対に左結合になります。
BとCの間は等結合、右結合はNGです

AとBは左結合なのに、Cは逆になって不整合を起こし、NGとなります

AとBは左結合なのに、それに続くBとCは等結合になっています。
これは不整合となりNGとなります。
BとCは必ず左結合としてください(それ以外は選べません)

AからCは等結合なので、CとD間は左結合でも問題なしです

今度は5つのテーブルを結合していますが、最後に左結合しているので問題ありません。
たとえば上の場合CとDの間が左結合でもOKです。
BC間が左結合、かつCD間が左結合、かつDE間が左結合でもOKです。
常にどういう結果を求めたいかを考慮してデータ連結を考えてみましょう!
5.左結合でも限られた抽出になる
上のような、左結合を行うとAのレコード(行)がすべて表示されると説明しましたが、B以降のテーブルに抽出条件を設定すると、Aの全行が表示されなくなります。
これを説明すると、また頭がこんがらがってしまいますので、この説明はまた別の機会に!
こちらもあわせてどうぞお読みください。