平时删除用的都是简单的where判断,第一次看到联表删除
联表删除重复邮箱的元组中id非最小的元素
delete a
from Person a,Person b
where a.id > b.id and a.email = b.email
朴素思路:子查询找到重复的邮箱中id最小的,外层删除其他id
DELETE
FROM
Person
WHERE
id NOT IN
(
SELECT t.id from
(SELECT MIN(id) as id FROM Person GROUP BY Emai) as t
)
需要注意mysql不支持同一个表边查边删,所以需要把子查询的结果创建临时表作为删除条件