SQLの構文につきまして
Access2007、Windows7環境で
SQLで自分の思ったとおりの結果が得られず困っています。
私の考え方に間違いがあるはずなのですが、自分ではよくわからない状態です。
お手数をお掛けして申し訳ないのですが
教えて頂けないでしょうか、よろしくお願いいたします。
----------- --------------------
T顧客マスタ T注文リスト
----------- --------------------
顧客ID 注文ID 顧客ID 送付先ID
1 1 1 2
2 2 3 4
3 3 3 5
4 4 6 7
5 5 1 8
6
7
8
この2つのテーブルで、注文リストの顧客IDと送付先IDは
顧客マスタのIDを参照するようになっています
顧客IDの1には店舗情報が入っていて
注文リストの顧客IDと、1から送られてきた送付先IDの注文履歴を取得しようと思い
次のようなSQL文を記述しました
SELECT T1.顧客ID, T2.氏名, T1.発送先ID FROM T注文リスト T1, T顧客リスト T2 WHERE
T1.顧客ID = T2.顧客ID AND T1.顧客ID = [履歴を抽出したいID] or
( T1.顧客ID = 1 AND T1.発送先ID = [履歴を抽出したいID] )
自分の頭の中では、まず顧客に依頼されて送付したものを抽出して
それに店舗から顧客に直接送付したものを追加で抽出し
顧客IDだとわかりづらいので顧客IDで結合して氏名を表示してるイメージです
その後、発送先の氏名も出すつもりです
ここで、抽出したいIDが注文リストの顧客IDにある場合は正常に抽出できるのですが
なぜか、1から送付されたID、上だと8などの場合、顧客ID:1 発送先ID:8 のセットで
顧客マスタの数分ずらずらと8件表示されてしまいます
なぜ同じデータが顧客マスタのデータ分ずらずらと表示されるのかが
わからないのです。自分の中では1件だけ表示されるつもりなのですが。
この仕組みについて教えていただけないでしょうか
どこか根本的に考え方を間違っている気はするのですがよくわからない状態です
よろしくお願いいたします。
お礼
早々の返答ありがとうございます できればいつといつといつにDMを出した。というふうに複数残す方法はありませんか?