- ベストアンサー
3つのテーブルの結合
access2000にて作業しています。 下記のようなテーブルが3つあります。 [納品T] 年月日|顧客番号|品名|数量 [品名マスタ] 顧客番号|品名 [顧客マスタ] ID|顧客名 納品クエリを作り デザイン画面で [納品T]品名と[品名マスタ]品名を結び [納品T]顧客番号[顧客マスタ]IDを結んで クエリを表示すると、[納品T]のレコードより少なくなってしまします。 その原因は、別の顧客で品名が同一なものがあることが原因と思うのですが、[納品T]と納品クエリのレコード数を一致させるには、SQLはどのように書けばいいのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
レコードが少なくなるということは > 別の顧客で品名が同一なものがあることが原因 ではなく、 納品Tの品名に品名マスタにないものも含んでいる もしくは納品Tの顧客番号に顧客マスタにないものを含んでいるのではないでしょうか? SELECT 納品T.* FROM 品名マスタ RIGHT JOIN (顧客マスタ RIGHT JOIN 納品T ON 顧客マスタ.ID = 納品T.顧客番号) ON 品名マスタ.品名 = 納品T.品名; これでどうでしょうか?
その他の回答 (1)
- ranx
- ベストアンサー率24% (357/1463)
回答No.2
No.1さんの回答されている通りなのですが、 デザイン画面上でこれを行うには、 テーブル同士を結んでいる線の上でマウスの 左ボタンをダブルクリックします。 すると、結合の仕方を選択する画面が現れますから、 「納品T」テーブルのすべてのデータを表示するよう 設定します。
質問者
お礼
回答ありがとうございました。 未解決ですが、あまりに初心者のため、今後の課題にさせていただきます。
お礼
回答ありがとうございました。 未解決ですが、あまりに初心者のため、今後の課題にさせていただきます。