Accessにてツールを作成しています。追加クエリの部分で質問です。 T_応募とT_会員登録の2つのテーブルがあり 条件を満たしたものをT_統合という名のテーブルに追加したいです。
Accessにてツールを作成しています。追加クエリの部分で質問です。 T_応募とT_会員登録の2つのテーブルがあり 条件を満たしたものをT_統合という名のテーブルに追加したいです。 以下の内容で追加クエリを作りました。 -------------------------------- INSERT INTO T_統合 ( 応募データ会員ID, 登録日時, 姓, 名, メアド, 電話番号, 都道府県, 番地以下, CP月, 会員登録あり, 名寄せ名前, 名寄せ住所, 名寄せ郵便番号+姓 ) SELECT T_応募.応募データ会員ID, T_応募.登録日時, T_応募.姓, T_応募.名, T_会員登録.[メアド], T_応募.電話番号, T_応募.都道府県, T_応募.番地以下, T_応募.CP月, T_会員登録.登録日時 AS 会員登録あり, T_応募.[姓] & [名] AS 名寄せ氏名, [都道府県] & [番地以下] AS 名寄せ住所, [郵便番号] & [姓] AS 名寄せ郵便番号+姓 FROM T_応募 LEFT JOIN T_会員登録 ON T_応募.[メアド] = T_会員登録.[メアド] -------------------------------- ただ、この構文だと T_応募とT_会員登録のテーブルは随時リストが追加されるため、 毎回この追加クエリを行うと前回の分(すでにT_統合にある重複しているリスト)がそのままの状態で積みあがってしまいます…。 要望> 追加クエリ時に既にT_統合にある重複分は除いたもののみ追加されるような仕組みにしたいです。 ご教授いただければ幸いです。よろしくお願いいたします。
Microsoft Access | Visual Basic・54閲覧
ベストアンサー
NOT EXISTS を使って、こんな感じではどうでしょうか。 INSERT INTO T_統合 ( 応募データ会員ID, 〜 ) SELECT T_応募.応募データ会員ID, 〜 FROM T_応募 LEFT JOIN T_会員登録 ON T_応募.[メアド] = T_会員登録.[メアド] WHERE NOT EXISTS ( SELECT * FROM T_統合 WHERE T_統合.応募データ会員ID = T_応募. 応募データ会員ID )
質問者からのお礼コメント
WHERE NOT EXISTS (SELECT * FROM T_統合 WHERE T_統合.応募データ会員ID = T_応募.応募データ会員ID );を付け加え、 理想のカタチにできました!本当にありがとうございます!!
お礼日時:1/23 10:19