Accessでテーブルを結合してみた¶
Accessのクエリでテーブルを結合してみました。内部結合とか外部結合とか、データベースに詳しい人には簡単なのかもしれないのですが、慣れていないと忘れてしまいますのでメモっておきます。
試した環境は下記です。
Access 2016
目次
内部結合と外部結合とは¶
内部結合 両方のテーブルの指定したフィールドの値が一致するものだけを取り出して結合する。
外部結合 両方のテーブルの指定したフィールドの値が一致するものと、結合元の一致しないものを取り出して、結合する。
試してみた¶
実際にAccessを使って試してみました。 元のデータはこれです。
この2つのテーブルを結合してみます。table_1の方の秀丸エディタとtable_2のAdobeの結合結果に注目です。
内部結合¶
「作成」メニューから「クエリ」の中の「クエリデザイン」を選択し、2つのテーブルを選んでクエリを作成します。
table_1のsourceをドラッグしてtable_2のIDにドロップすると、線が引かれます。
データシートビューに切り替えたときに結合結果が表示されるように、table_1のitemとtable_2のtagをそれぞれドラッグして、下の方に表示される(投稿の例では表示されてませんが)表にドロップします。
線をダブルクリックすると、結合プロパティというダイアログボックスが開きます。
「両方のテーブルの結合フィールドが同じ行だけを含める。」を選択して「OK」をクリックして、クエリをデータシートビューに切り替えると、このように表示されます。
table_2の方に斉藤企画が入っていない秀丸エディタと、table_1の方にアプリが入っていないAdobeが、結合結果に表示されてませんね。
外部結合¶
結合プロパティを変えてみます。
「table_1の全レコードとtable_2の同じ結合フィールドのレコードだけを含める。」を選択してみます。
そうすると、table_1の秀丸エディタが表示されます。
「table_2の全レコードとtable_1の同じ結合フィールドのレコードだけを含める。」を選択してみます。
そうすると、table_2のAdobeが表示されます。