間違えてクエリを実行して追加してしまったかもしれないデータを検索したい


こんにちは。仕事でやらかしてしまいまして、Accessでやってはいけないタイミングでクエリを実行しました。そのクエリはBテーブルからAテーブルにデータを追加するというものなのですが、実行中、咄嗟にCtrl+Pause/Breakキーを同時に押して、強制終了してしまいました(クエリが停止し、他のテーブル等が触れるようになりました、実行中はAccess上で何も選択できない状態でした)。

ただ、クエリ実行前のAテーブルのレコード件数を確認していなかったので、クエリは中途半端に実行されてデータが追加されたのか、それとも、クエリの実行は免れてデータ追加も免れることができたのか、どちらの状態か判断できず…そこで、テーブルのデータを調べることにしました。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2019/11/05 19:31:55
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
id:moon-fondu

テーブルAとテーブルBにはそれぞれ「比較用」という列があります。

テーブルBの方の「比較用」列の件数は圧倒的に少ない数千件程度で、一方、テーブルAの方は数十万件あります。

同時に、「商品ID」という、これまた2つのテーブルに共通した列があります。

テーブルBの「比較用」「商品ID」列のレコードの両方の値が、テーブルAの「比較用」「商品ID」のレコードの値と一致すれば、「データが追加されてしまっている」と判断できます。一致しなければ、データの追加は行われなかったと判断できます。

その2つの条件でデータを抽出するSQL文を、お教えいただけないでしょうか。

よろしくお願い致します。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント1200pt

テーブル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.比較用

どれくらいの時間がかかるかは、両テーブルのインデックスがどうなっているかに寄ります。

id:moon-fondu

a-kuma3さんありがとうございます、返信遅くなりましてすみません!
はい、なんとか上記のSQL文を試してみましたところ、一致するレコードはなかっため、データ追加されていなかったようです…間一髪でした。
ありがとうございました(;^_^A

2019/11/05 19:30:41

その他の回答0件)

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154ここでベストアンサー

ポイント1200pt

テーブル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.比較用

どれくらいの時間がかかるかは、両テーブルのインデックスがどうなっているかに寄ります。

id:moon-fondu

a-kuma3さんありがとうございます、返信遅くなりましてすみません!
はい、なんとか上記のSQL文を試してみましたところ、一致するレコードはなかっため、データ追加されていなかったようです…間一髪でした。
ありがとうございました(;^_^A

2019/11/05 19:30:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません