質問: MySQLで2つのテーブルから重複したデータを抽出し、重複したものは削除したいです。 考えているものはこんな感じです。このようなテーブルがあるとします。 table_A | address | day | name | | --- | --- | --- | | XX市 | 1月1日 | 太郎 | | YY市 | 1月2日 | 花子 | | XX市 | 1月3日 | 一郎 | | YY市 | 1月4日 | 三郎 | table_B | address | day | name | | --- | --- | --- | | XX市 | 1月1日 | 太郎 | | YY市 | 2月2日 | 花子 | | XX市 | 3月3日 | 次郎 | | YY市 | 1月4日 | 三郎 | テーブルAとテーブルBを比較して、AとBで住所、生年月日、名前のすべてに一致するレコードのみをテーブルBから削除するにはどうすればいいでしょうか? SQL文がうまく思いつかなかったので知恵をお貸しいただけたら幸いです。 実際はもっと大量のデータで行います。 結果としては table_B | address | day | 名 | | --- | --- | --- | | YY市 | 2月2日 | 花子 | | XX市 | 3月3日 | 次郎 | となるようにしたいです。
回答: ``` delete from table_b as tgt where exists( select 1 from table_a where address=tgt.address and day=tgt.day and name=tgt.name ) ```