こんにちは。仕事でやらかしてしまいまして、Accessでやってはいけないタイミングでクエリを実行しました。そのクエリはBテーブルからAテーブルにデータを追加するというものなのですが、実行中、咄嗟にCtrl+Pause/Breakキーを同時に押して、強制終了してしまいました(クエリが停止し、他のテーブル等が触れるようになりました、実行中はAccess上で何も選択できない状態でした)。
ただ、クエリ実行前のAテーブルのレコード件数を確認していなかったので、クエリは中途半端に実行されてデータが追加されたのか、それとも、クエリの実行は免れてデータ追加も免れることができたのか、どちらの状態か判断できず…そこで、テーブルのデータを調べることにしました。
テーブルAとテーブルBにはそれぞれ「比較用」という列があります。
テーブルBの方の「比較用」列の件数は圧倒的に少ない数千件程度で、一方、テーブルAの方は数十万件あります。
同時に、「商品ID」という、これまた2つのテーブルに共通した列があります。
テーブルBの「比較用」「商品ID」列のレコードの両方の値が、テーブルAの「比較用」「商品ID」のレコードの値と一致すれば、「データが追加されてしまっている」と判断できます。一致しなければ、データの追加は行われなかったと判断できます。
その2つの条件でデータを抽出するSQL文を、お教えいただけないでしょうか。
よろしくお願い致します。
テーブルBの「比較用」「商品ID」列のレコードの両方の値が、テーブルAの「比較用」「商品ID」のレコードの値と一致しているデータの、商品ID と比較用の値を抽出する SQL は、以下のような感じです。
select B.商品ID, B.比較用 from テーブルA as A, テーブルB as B where A.商品ID = B.商品ID and A.比較用 = B.比較用
どれくらいの時間がかかるかは、両テーブルのインデックスがどうなっているかに寄ります。
テーブルBの「比較用」「商品ID」列のレコードの両方の値が、テーブルAの「比較用」「商品ID」のレコードの値と一致しているデータの、商品ID と比較用の値を抽出する SQL は、以下のような感じです。
select B.商品ID, B.比較用 from テーブルA as A, テーブルB as B where A.商品ID = B.商品ID and A.比較用 = B.比較用
どれくらいの時間がかかるかは、両テーブルのインデックスがどうなっているかに寄ります。
a-kuma3さんありがとうございます、返信遅くなりましてすみません!
はい、なんとか上記のSQL文を試してみましたところ、一致するレコードはなかっため、データ追加されていなかったようです…間一髪でした。
ありがとうございました(;^_^A
a-kuma3さんありがとうございます、返信遅くなりましてすみません!
2019/11/05 19:30:41はい、なんとか上記のSQL文を試してみましたところ、一致するレコードはなかっため、データ追加されていなかったようです…間一髪でした。
ありがとうございました(;^_^A