首页 > 解决方案 > 用于删除重复电子邮件的数据库 SQL 查询

问题描述

我必须编写一个 SQL 查询来删除名为 的表中的所有重复电子邮件条目Person,仅保留基于其最小 ID 的唯一电子邮件。Id 是该表的主键列。

这是我写的查询:

delete from Person 
where Email not in (select distinct Email from Person)

但我得到这个错误:

您不能在 FROM 子句中指定目标表“Person”进行更新

标签: mysqlsql

解决方案


你可以试试这个。

   DELETE p1 FROM Person p1
INNER JOIN Person p2 
WHERE 
    t1.id < t2.id AND 
    t1.Email = t2.Email ;

推荐阅读