- ベストアンサー
Accessで重複していないデータを表示する方法
テーブルAとBがあるとします。 Aには 111、222、333、444、555…… という全データが入っていて Bには 111、333、444…… というAの中の一部データが入っています。 そこで、クエリ等を使って、テーブルAには入っているけれど テーブルBには入っていないデータを抽出したいのですが、どうすれば良いでしょうか? 集合で表すとA∩( ̄B)なことです。 使用しているソフトはAccess2007です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 テーブルの結合時に「Aのテーブル全てに対してBのテーブル」を結合するにしてください。
その他の回答 (4)
- CHRONOS_0
- ベストアンサー率54% (457/838)
ウィザードを使うのなら不一致クエリ >A∩( ̄B) これをそのまま書くのなら フィールドの抽出条件欄に Not in (select フィールド名 from B)
既に回答が示されていますが・・・。 クエリを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です。
- toshichan7
- ベストアンサー率19% (21/106)
選択クエリでAテーブルとBテーブルを追加、リレーションの結合プロパティを、「Aの全レコード・・・」にして、Bテーブル側のフィールドの抽出条件をIs Nullにしてはどうでしょう。
- kurageon
- ベストアンサー率38% (15/39)
AとBのテーブルをクエリで結んでB側の条件に「Not Null」といれて実行してみてください。
お礼
皆さま、素早い回答ありがとうございました。 外部結合→「Is Null」で無事表示されました。 後の方も詳しく書いていただきありがとうございます。 SQL記述、参考になります。