質問: C.id ``` としてみたところ、若干早くなったような気はしますが、やはり実用的な レベルではありませんでした。 良い方法がありましたらご教授ください。 よろしくお願いいたします。
回答: Access SQLの特性が分からないので思いつくSQL文を列挙してみます。どれが速いか比較してみてください。 左結合で一致しなかった行を抽出(27秒) ``` SELECT * FROM A LEFT JOIN B ON A.id = B.id WHERE B.id IS NULL ``` Bのid一覧を作成し、そこに含まれていない行を抽出(55秒) ``` SELECT * FROM A WHERE A.id NOT IN (SELECT id FROM B) ``` Bにidの一致する行が存在しないAの行を抽出(14秒) ``` SELECT * FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE A.id = B.id) ``` コメントよりAccessでの実行時間を参考値として記載しました。