• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:不一致データの削除)

不一致データの削除

このQ&Aのポイント
  • 顧客テーブルと連絡テーブルを比較して、顧客テーブルに存在しないデータを連絡テーブルから削除する方法について教えてください。
  • 顧客テーブルと連絡テーブルのデータを比較し、顧客テーブルに存在しないデータを連絡テーブルから削除するSQL文の書き方を教えてください。
  • 顧客テーブルと連絡テーブルの内容を比較して、連絡テーブルに存在しない顧客データを削除する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kawais070
  • ベストアンサー率52% (2242/4283)
回答No.1

merge 連絡テーブル using 顧客テーブル on 連絡テーブル.番号 = 顧客テーブル.番号 and 連絡テーブル.名前 = 顧客テーブル.名前 and 連絡テーブル.地域 = 顧客テーブル.地域 and 連絡テーブル.性別 = 顧客テーブル.性別 when not matched by source then delete; 動作確認してないけど、こんな感じで。 注意点としては、SQL Server 2008以降であることと、最後に ; が必須なことかな。

taroanija
質問者

補足

ご回答ありがとうございます。 SQL Server 2000でも同じ処理をおこなうため、 そちらの書き方も教えてください。

その他の回答 (1)

  • kawais070
  • ベストアンサー率52% (2242/4283)
回答No.2

> SQL Server 2000でも同じ処理をおこなうため、 サポート切れのバージョンを使うのはよろしくないですね。 それはさておき、ストアドプロシージャでやるしかないかなと思います。 SQL一発でってのは無理です。

taroanija
質問者

お礼

kawais070 様   お礼が遅くなり、大変失礼いたしました。   ご教示いただいた内容をもとに試行錯誤した結果、SQL Server 2000の方は下記SQL文で削除してみようと思います。   delete * from 連絡テーブル where not exists( select * from 顧客テーブル where 連絡テーブル.番号 = 顧客テーブル.番号 and 連絡テーブル.名前 = 顧客テーブル.名前 and 連絡テーブル.地域 = 顧客テーブル.地域 and 連絡テーブル.性別 = 顧客テーブル.性別)   迅速なご回答をいただき、心より感謝申し上げます。  

関連するQ&A