

MySQLで２つのテーブルから重複したデータを抽出し、重複したものは削除したいです。

考えているものはこんな感じです。このようなテーブルがあるとします。  
テーブルA  
|住所|生年月日|名前|  
|XX市|1月1日|太郎|  
|YY市|1月2日|花子|  
|XX市|1月3日|一郎|  
|YY市|1月4日|三郎|

テーブルB  
|住所|生年月日|名前|  
|XX市|1月1日|太郎|  
|YY市|2月2日|花子|  
|XX市|3月3日|次郎|  
|YY市|1月4日|三郎|

テーブルAとテーブルBを比較して、AとBで住所、生年月日、名前のすべてに一致するレコードのみをテーブルBから削除するにはどうすればいいでしょうか？  
SQL文がうまく思いつかなかったので知恵をお貸しいただけたら幸いです。  
実際はもっと大量のデータで行います。  
結果としては  
テーブルB  
|住所|生年月日|名前|  
|YY市|2月2日|花子|  
|XX市|3月3日|次郎|

となるようにしたいです。


CC BY-SA 4.0
2018-08-16T11:29:50.507
47566
2018-08-17T02:08:01.947
2018-08-17T02:08:01.947
754
27527
question
mysql sql
MySQLの複数テーブルを用いた条件による削除


次のいずれかのクエリで可能です。

[code]

    DELETE FROM B USING A JOIN B USING(住所,生年月日,名前);
    DELETE FROM B USING A NATURAL JOIN B;
    DELETE B FROM A JOIN B USING (住所,生年月日,名前);
    DELETE B FROM A NATURAL JOIN B;
    
[/code]

構文について詳しくはマニュアルを見ましょう。  
<https://dev.mysql.com/doc/refman/5.6/ja/delete.html>


CC BY-SA 4.0
2018-08-16T14:04:07.950
47568
2018-08-16T14:04:07.950
3249
47566
answer