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

标签 php mysql

考虑我有一个像这样的表结构,

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

还有一张 table

id   userId     name
---------------------
1    1          A
2    2          B
3    3          C
4    4          D
5    5          E

现在,如果我想从表 1 中删除重复项,即应从 table1 中删除 2, 3, 4, 5 及其在 table2 中的相应数据.

我该怎么做?
这可能吗?

最佳答案

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

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) 

希望这对您有用。

关于php - 删除mysql中一个表中的重复行及其另一个表中的相应数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43269905/

相关文章:

mysql - mysql中的if..then语句

mysql - 我怎样才能做出这个选择语句

mySQL Schema 设计建议

php - 在 SuiteCRM 中为电子邮件配置 Mailgun API

php - 为什么我无法使用 mysqli_fetch_assoc 两次显示相同的结果?

php - 点击图片上传

javascript - 如何在 chrome/FF/IE PHP 上强制打开 PDF

mysql - 查询 mySQL 以请求类别条目数

php - 我无法从我创建的存储过程中获取结果

php - MySQL/PHP - 在 while 循环中显示表中的所有数据,而循环不在模板文件中