-2

私は2つのテーブルを持っています。table1には200万のレコードがあり、table2には1,100万のレコードがあります。table2からtable1を削除したいのですが、MySQLでこれを行うにはどうすればよいですか?ありがとうございました。

4

4 に答える 4

2

テーブル1のレコードと一致するテーブル2のすべてのレコードを削除したいようです。その場合は、サブクエリを使用できます。あなたが持っているレコードの数でこれがどれほど効率的かはわかりませんが、以下はうまくいくはずです:

DELETE FROM table2 where table2.phonenumber IN (select phonenumber from table1);
于 2012-10-03T19:28:45.367 に答える
1
SELECT Table2.* FROM Table2   JOIN Table1 ON Table2.phone = Table1.phone WHERE Table2.phone is not null

DELETE Table2.* FROM Table2   JOIN Table1 ON Table2.phone = Table1.phone WHERE Table2.phone is not null
于 2012-10-03T19:29:43.783 に答える
1
Delete from table2
where number in (Select number from table1)
于 2012-10-03T19:30:10.640 に答える
0

結合を実行してから、結合から削除してみてください

SELECT tbl1.MyId FROM table1 tbl1
JOIN table2 on tbl1.phonenumber = tb2.phonenumber

次に、そこから削除します

そのような

DELETE FROM Table2 WHERE MyID IN
(SELECT tbl1.MyId FROM table1 tbl1
JOIN table2 on tbl1.phonenumber = tb2.phonenumber)

これはSQLコードであり、mysqlで何が変更されるか正確にはわかりません

幸運を!

于 2012-10-03T19:27:12.713 に答える