プロが教える店舗&オフィスのセキュリティ対策術

テーブルAとBがあるとします。

Aには
111、222、333、444、555……
という全データが入っていて

Bには
111、333、444……
というAの中の一部データが入っています。

そこで、クエリ等を使って、テーブルAには入っているけれど
テーブルBには入っていないデータを抽出したいのですが、どうすれば良いでしょうか?

集合で表すとA∩( ̄B)なことです。
使用しているソフトはAccess2007です。

A 回答 (5件)

No.1です。


テーブルの結合時に「Aのテーブル全てに対してBのテーブル」を結合するにしてください。
    • good
    • 0

ウィザードを使うのなら不一致クエリ



>A∩( ̄B)
これをそのまま書くのなら
フィールドの抽出条件欄に

Not in (select フィールド名 from B)
    • good
    • 0
この回答へのお礼

皆さま、素早い回答ありがとうございました。

外部結合→「Is Null」で無事表示されました。
後の方も詳しく書いていただきありがとうございます。
SQL記述、参考になります。

お礼日時:2007/09/04 23:49

既に回答が示されていますが・・・。


クエリを2段構えで作成されると容易く結果が得られると思います。
もちろん、<クエリ1>は破棄します。

<tab1>
a
2
3
5

<tab2>
b
2
4
5
6

>tab1には入っているけれどtab2には入っていないデータ--->3

左外部結合を作成するには、LEFT JOIN 操作を使用します。
左外部結合では、結合する 2 つのテーブルのうち 2 番目 (右側) のテーブルに対応するレコードがなくても、1 番目 (左側) のテーブルのレコードがすべて追加されます。

<クエリ1>
SELECT tab1.a, tab2.b
FROM tab1 LEFT JOIN tab2 ON tab1.a=tab2.b;

[実行結果]
a___b
2___2
3___
5___5

<クエリ2>
SELECT tab1.a
FROM tab1 LEFT JOIN tab2 ON tab1.a=tab2.b
WHERE tab2.b is null;

[実行結果]
a
3

Access2003です。
    • good
    • 0

選択クエリでAテーブルとBテーブルを追加、リレーションの結合プロパティを、「Aの全レコード・・・」にして、Bテーブル側のフィールドの抽出条件をIs Nullにしてはどうでしょう。

    • good
    • 0

AとBのテーブルをクエリで結んでB側の条件に「Not Null」といれて実行してみてください。

    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A