Accessのク゚リ3皮類の結合の違いに぀いお

Accessのク゚リでは、耇数のテヌブルを結合しお䜜る為の「リレヌションシップ」ず呌ばれる機胜がありたす。この機胜を甚いるこずで、耇数のテヌブルを同じキヌ䟋えば瀟員IDを甚いお結合し、ガッチャンコした状態で新たなク゚リを䜜るこずができたす。

䟋えば商品マスタヌず売䞊マスタヌを結合させお、売䞊マスタに商品情報を加えた状態のク゚リを䜜るなどがこれで可胜になるわけです。しかし、この結合には3皮類存圚し、きちんず把握した状態で結合をしないず、デヌタの取りこがしを招く恐れがありたすので、今回はそこを解説しおみたいず思いたす。

今回䜿甚するサンプルファむル

2぀のテヌブルず3皮類のク゚リを䜜り蟌んでありたす。

結合の皮類ず内容

今回のサンプルはわかりやすくする為に、マスタおよびサブマスタの䞡方のテヌブルに斌いお、「斜蚭名カナ」をキヌにしお、䞡方のテヌブルを結合。䞡方のテヌブルデヌタを結合しお抜出しおいたす。

内郚結合

いわゆる完党結合です。぀のテヌブルマスタずサブマスタの関係に斌いお、䞡方にキヌ䟋えば瀟員IDを基準に「同じデヌタが存圚する」堎合に、それらをピックアップしお衚瀺したす。片方のテヌブルにしかないデヌタに぀いおは、ク゚リの結果に衚瀺されたせん。非垞によく䜿うパタヌンですが、デヌタを取りこがす可胜性もありたす。

図テヌブル間は矢印のない結合で結ばれおいる

図䞡方に同䞀キヌを持぀レコヌドだけが抜出される

巊倖郚結合

LEFT JOINず呌ばれたすが、マスタヌ偎の党デヌタを衚瀺し、サブマスタ偎のデヌタは存圚するものがあればピックアップしお来おくれたす。マスタヌ偎のデヌタの取りこがしはありたせんが、サブマスタ偎にだけある斜蚭名が存圚する堎合、そのデヌタはヒットしないので、取りこがす可胜性はありたす。

図サブマスタにだけあるデヌタは衚瀺されない

図マスタにだけある堎合、商品名が空癜になっおる

右倖郚結合

RIGHT JOINず呌ばれたすが、サブマスタ偎にあるデヌタは党衚瀺されたす。よっお、マスタ偎に登録のないデヌタはこの堎合、斜蚭名が空癜の状態で衚瀺されたす。マスタヌ偎のデヌタを取りこがすこずにはなりたすが、空癜があるこずで「おかしなデヌタがある」こずをナヌザは怜知できるので、取りこがしは少なくなりたす。

図マスタにないデヌタは空癜で衚瀺される事になる

図斜蚭名が空癜のレコヌドがマスタ偎に登録のないデヌタ

結合の䜜り方

結合の遞択

ク゚リ䜜成画面に斌いお、以䞋のような手順で䞊蚘の3皮類の結合を䜜成するこずが可胜です。

  1. 空のク゚リデザむン䜜成画面に斌いお、マスタおよびサブマスタを远加する
  2. マスタヌ偎斜蚭名カナを掎んで、サブマスタヌ偎斜蚭名称ぞドラッグアンドドロップするこの段階で内郚結合は完成する
  3. 結合された線をダブルクリックする
  4. 結合の皮類が出おくるので、2個目を遞ぶず巊倖郚結合ずなる
  5. おなじく3個目を遞ぶず右倖郚結合ずなる
  6. 䞀方向に察しお矢印が出お、結合は完成する。OKを抌す事で完成する

図ダむアログ内で結合の皮類を遞択する

ク゚リの䜜成

結合が完了したら䞡方のテヌブルからフィヌルドを掎んで、䞋のパネルに離す事でク゚リの列のデザむンを決められたす。しかし、闇雲に぀かめば良いずいうものでもなく、以䞋のルヌルを元に必芁な列を掎んでポむしたしょう。

  1. マスタヌ偎からはIDやキヌにした列など䞻芁なデヌタを掎んで入れる
  2. サブマスタヌ偎からは、キヌにした列以倖で衚瀺したいサブマスタデヌタの列だけを厳遞しお入れる。ID列などは通垞必芁ない。
  3. たたマスタ偎にもあっおサブマスタ偎にもある、キヌ以倖で同じようなデヌタに぀いおは、マスタ偎のだけを入れれば十分である。

図マスタをベヌスにし、サブマスタからは必芁な列だけピックアップ

関連リンク

コメントを残す

メヌルアドレスが公開されるこずはありたせん。 ※ が付いおいる欄は必須項目です

このサむトはスパムを䜎枛するために Akismet を䜿っおいたす。コメントデヌタの凊理方法の詳现はこちらをご芧ください。