ACCESS2000を使用して下記のような3つのテーブルがあったとします。

1.メインテーブル

  商品名   コード
1 りんご   012
2 りんご   022
3 バナナ   200
4 バナナ   201
5 イチゴ   100

2.A商店テーブル

  商品名   コード
1 りんご   012
2 バナナ   200
3 バナナ   201

3.B商店テーブル

1 りんご   022
2 バナナ   201

テーブル1~3を照合して作製したいクエリ

  商品名   コード  A  B
1 りんご   012  ○  ×
2 りんご   022  ×  ○
3 バナナ   200  ○  ×
4 バナナ   201  ○  ○
5 イチゴ   100  ×  ×

のように複数のテーブルを参照し、テーブル1のフィールドにある内容と同一のものがどのテーブルに存在するまたは、存在しないをがわかるような一覧リストを作成したいのですが、具体的にはどのようにしたら良いのでしょうか。

よろしくおねがいいたします。

A 回答 (2件)

LEFT JOINを使えば出来ると思います。



この場合だと
SELECT メインテーブル .商品名, メインテーブル .コード,
    A商店テーブル.コード
FROM メインテーブル LEFT JOIN A商店テーブル
WHERE メインテーブル .コード = A商店テーブル.コード

といった感じでしょうか?
でもこのSQL文だと「○」or「×」ではなく「コード」or「NULL」で
結果が出ますので変換する必要がありますけど。。。
    • good
    • 0

上の説明ではいまいち分からなかったのですが、これは、A商店B商店の2店舗だけと考えてよろしいんですか?また、現在だけの存在が分かればいいのですか?


もしそうでしたら、難しいことをしないでも、各商品のテーブル(この場合メインテーブル)にA店用B店用のチェックボックスを2つ付け加えるだけでもいいと思うのですが?

この回答への補足

補足させて頂きます

メインテーブル以外のテーブルはA商店 B商店に限らず C、D、E・・・
と複数個に増えていき固定ではありません

また、各商店毎の商品名と商品コードも常に一定ではないため、各店毎にテーブルを作り、そこへ商品名と商品コードを追加・削除したいと考えております。

確かに、おっしゃるようにメインテーブルの中に、それぞれの店のフィールドを追加しそこにチェックを行えば、すむように思えるのですが、メインテーブル以外の
各店毎のテーブルが、別に供給されるため、上記のような作業を行いたいのです。

以上、おわかりいただけましたでしょうか?

補足日時:2001/03/03 20:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報