- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:不一致データの削除)
不一致データの削除
このQ&Aのポイント
- 顧客テーブルと連絡テーブルを比較して、顧客テーブルに存在しないデータを連絡テーブルから削除する方法について教えてください。
- 顧客テーブルと連絡テーブルのデータを比較し、顧客テーブルに存在しないデータを連絡テーブルから削除するSQL文の書き方を教えてください。
- 顧客テーブルと連絡テーブルの内容を比較して、連絡テーブルに存在しない顧客データを削除する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
merge 連絡テーブル using 顧客テーブル on 連絡テーブル.番号 = 顧客テーブル.番号 and 連絡テーブル.名前 = 顧客テーブル.名前 and 連絡テーブル.地域 = 顧客テーブル.地域 and 連絡テーブル.性別 = 顧客テーブル.性別 when not matched by source then delete; 動作確認してないけど、こんな感じで。 注意点としては、SQL Server 2008以降であることと、最後に ; が必須なことかな。
その他の回答 (1)
- kawais070
- ベストアンサー率52% (2242/4283)
回答No.2
> SQL Server 2000でも同じ処理をおこなうため、 サポート切れのバージョンを使うのはよろしくないですね。 それはさておき、ストアドプロシージャでやるしかないかなと思います。 SQL一発でってのは無理です。
質問者
お礼
kawais070 様 お礼が遅くなり、大変失礼いたしました。 ご教示いただいた内容をもとに試行錯誤した結果、SQL Server 2000の方は下記SQL文で削除してみようと思います。 delete * from 連絡テーブル where not exists( select * from 顧客テーブル where 連絡テーブル.番号 = 顧客テーブル.番号 and 連絡テーブル.名前 = 顧客テーブル.名前 and 連絡テーブル.地域 = 顧客テーブル.地域 and 連絡テーブル.性別 = 顧客テーブル.性別) 迅速なご回答をいただき、心より感謝申し上げます。
補足
ご回答ありがとうございます。 SQL Server 2000でも同じ処理をおこなうため、 そちらの書き方も教えてください。