
#34 左結合で全部盛りデータにするAccessクエリ
Excelユーザー必見!Accessクエリで業務効率を飛躍的に向上させる方法を、図解入りでわかりやすく解説中。
必ずチェックして、業務を効率化しよう!
前回は1対多のデータ突合について説明しましたね。
今回はこの突合の特徴を生かす左結合について解説します。
1.データのダウンロード
#32で解説したデータを今回も用います。
#32で用いたデータ↓

今回の例題用に新たに↓のExcelをダウンロードしてください。
これは#32でダウンロードしてリンクした「TC01_企業基本情報」Excelに情報を新たに追加したものです。Excelの名称は同じです。
元データに変更があったときに、Access側でどのようなデータに変わるのかを理解いただくための、データ更新のデモンストレーションです。
#32で解説したとおり、Accessと「TC01_企業基本情報」は、インポートではなくリンクで接続しました。
リンク元のExcelファイルと今回のファイルは同名ですので、Accessでリンクしているテーブルの内容は新しい情報に更新されます。
ダウンロードしたデータは、まずデスクトップなどに保存して解凍し、前回リンクしたExcelファイルと差し替えてください。
今回ダウンロードしたzipファイル↓

解凍して元の「TC01_企業基本情報」Excelファイルとリンクで差し替えます。
元のデータが最新情報に更新されたと仮定します。

「ファイルを置き換える」でExcelを更新します。
Accessの中身は、
更新前

更新後

2列から5列に増え、会社名(行数)も5社から9社に増えています。
3列名の「取引ステータス」で取引が中止になった会社が2社あります(残念です…)
また、新たに2024月1日に取引先となった4社が追加されました(6行目以降)
◆重要
この表は取引のある会社のマスタとして管理しています。
Accessでは(というかデータベースのありかたとしては)マスタテーブルは削除されたデータ(この場合、取引が中止された2社)を完全に消去するのではなく、新たなステータスをつけて「削除された」ものとして管理するのが一般的です。
2.1対多データの等結合
デザインビューを開いて、「TC01_企業基本情報」と「TC02_企業担当」を「企業ID」をキーに結合してみます。

それぞれのテーブルから赤と緑の項目を表示させます。
実行または表示をクリックします

今回新しく加わった4社は表示されませんね。
理由は左のテーブルの主キーと右のテーブルのキーが同一のものだけを抽出したからです(等結合)。
右のテーブルには結合キー「企業ID」の情報は1~5しか存在しないので6以降のIDは引き当てることができないのです。
3.データ結合を「左結合」にして全レコードを表示する
前回表示した結合図をまた見てみましょう

左表のテーブルと右表のテーブルで同一のキー(ここでは企業ID)は1,2,3になります。
左表の"企業ID"4,5のレコードを表示したくても右のテーブルには結合させる同じキーが存在しないためお手上げです。
左表のテーブルにあるレコードを全て表示しつつ、右のテーブルにキー結合する項目も表示してみましょう。
データの全部盛りですね。
デザインビューに戻って

リレーションしている線を右クリックすると上のようなウィンドウが現れます。等結合になります。
「結合プロパティ」をクリックします。
最初はウィンドウがなかなか出てこないかもしれません。
コツは、
①結合線をクリック→線が太くなる
②マウスをそのまま右クリック
①・②をポンポンとするような感じで。
①でクリック、マウスは上下左右に絶対に動かさないで②右クリック!です。
タイミングがつかめましたね。
うまくいくと下の図のウィンドウが現れます↓

2を選択してOKをクリック

左から右に矢印が付きました!
もし、反対側の右に向かって矢印がついてしまっていたら、再度2つ上の図「結合プロパティ」まで戻って実行して3を選択してみてください。
表示または実行をクリックしてください。

新たに加わった4社が表示されました!
4.左結合とは
左結合は「左外部結合」や「Left Outer Join」とも呼ばれますが、シンプルに「左結合」と覚えておきましょう。
リレーションで右向きの矢印が描かれている場合、左側のデータがすべて表示されます。
今回は左結合の基本についてご紹介しましたが、等結合との違いや、左結合の利点について疑問を感じる方もいるでしょう。
次回は、左結合についてさらに詳しく掘り下げてみます。
お楽しみに!