Access SQLで、二つのテーブルを比較し、片方にしかない方のデータのみを取得する方法について
お世話になります。
初歩的な質問ですみません。
Access2010を使用しています。
基本となるAテーブルと、比較するBテーブルのidを見て、AにはあるがBにはない
レコードのみを抽出するSQLを作成しています。
SELECT * FROM A LEFT JOIN B ON A.id = B.id WHERE ISNULL(B.id) = TRUE
…と、方法自体は間違っておらず、結果も正しいものを取得できてはいるのですが、
A,B共に件数が六万件以上あり、このクエリひとつで30秒ほど時間がかかって
しまいます。
もっと高速に動作する方法はないでしょうか?
一つの方法として、一度中間テーブルのCを用意し、
① INSERT INTO C (id) SELECT id FROM A
② DELETE * FROM C WHERE EXISTS (Select * From B Where C.id = B.id)
③SELECT * FROM A INNER JOIN C ON a.id = C.id
としてみたところ、若干早くなったような気はしますが、やはり実用的な
レベルではありませんでした。
良い方法がありましたらご教授ください。
よろしくお願いいたします。