02章09節…「外部結合」で一方にしか存在しないレコードも表示させる
(01)すべてのオブジェクトを閉じておきます。続けて「Q会員別参加履歴01」をコピーし、「Q会員別参加履歴02」を作成してください。
(02)「Q会員別参加履歴02」をデザインビューで開きます。さてこのクエリは[会員番号]を共通フィールドとしています。そして登録してある2つのテーブルの両方に利用されている[会員番号]に関するレコードのみが表示されています。今回は、「T申込データ」に使われていなくても「T会員マスター」に使われている会員データは追加で表示されるようにします。接続線をダブルクリックしてください。
(03)通常は[両方のテーブルの結合フィールドが同じ行だけを含める]にチェックが付いています。つまり両方のテーブルに存在している[会員番号]についての情報だけが表示されるのです。今回は「T会員マスターの全レコードと…」に切り替えてOKします。すると「T申込データ」に使われていないが「T会員マスター」に記述されている[会員番号]の行が追加で表示されるのです。
このように、一方のテーブルにのみ使用されている値を共通フィールドに持つレコードもクエリの結果に表示する結合パターンを「外部結合」とよびます。
(04)結合線に「外部結合」を示す矢印が表示されました。
データシートビューに切り替えましょう。
(05)従来の行に加えて[会員番号:1,8,9]の行が追加で表示されました。ただし[姓]以外は空欄になっています。[会員番号:1,8,9]の行は用意されましたが、「T申込データ」にその情報が記述されていないからです。ここでわかりやすくするために調整します。デザインビューへ切り替えてください。
(06)「T会員マスター」のみに存在している[会員番号]が一番左に表示されるようにします。デザイングリッドの左に配置してください。[昇順]の設定もします。
配置後はデータシートビューに切り替えます。
(07)列幅を調整して確認しましょう。空欄がない行は従来の「内部結合」でも作成される行です。空欄がある行は<外部結合:「T会員マスター」の全レコードを表示>で作成された追加行です。「T会員マスター.会員番号」に使われているが「T申込データ.会員番号」では使われていない値がわかるようになりました。このクエリは上書き保存して閉じます。※「○○.△△」⇒「テーブル名.フィールド名」