删除表中的重复行及其在mysql中另一个表中的相应数据

时间:2017-04-07 04:53:04

标签: php mysql

考虑我有这样的表结构,

rates

另一张表

id    Email
-----------
1    abc@gmail.com
2    abc1@gmail.com
3    abc@gmail.com
4    abc@gmail.com
5    abc@gmail.com

现在,如果我想删除表1中的重复项,则应从id userId name --------------------- 1 1 A 2 2 B 3 3 C 4 4 D 5 5 E 2, 3, 4, 5中的相应数据中删除table1

我该怎么办?
这可能吗?

2 个答案:

答案 0 :(得分:1)

首先尝试通过使用以下代码保留一行来删除用户表中的重复行:

DELETE FROM `user` WHERE `id` NOT IN (select * from ( SELECT MIN(`id`) FROM `user` GROUP BY `email` ) as t)

其次尝试通过以下方式从另一个表中删除其他相关行:

DELETE FROM `user_data` WHERE `u_id` NOT IN (select * from ( SELECT MIN(`id`) FROM `user` GROUP BY `email` ) as t) 

希望这对你有用。

答案 1 :(得分:0)

以DML方式,使用您的表尝试以下查询(根据您的表编辑它)。注意:可以回滚删除。

DELETE t1
FROM t1, holdkey
WHERE t1.col1 = holdkey.col1
AND t1.col2 = holdkey.col2