Write a SQL query to delete all duplicate email entries in a table named Person
, keeping only unique emails based on its smallest Id.
+----+------------------+ | Id | Email | +----+------------------+ | 1 | john@example.com | | 2 | bob@example.com | | 3 | john@example.com | +----+------------------+ Id is the primary key column for this table.
For example, after running your query, the above Person
table should have the following rows:
+----+------------------+ | Id | Email | +----+------------------+ | 1 | john@example.com | | 2 | bob@example.com | +----+------------------+
Subscribe to see which companies asked this question.
题目大意:
编写SQL删除Person表中所有的重复email条目,只保留Id最小的唯一email记录。
其中,Id是表的主键。
# Write your MySQL query statement below
# delete p1 from Person p1 inner join Person p2 on p1.Email=p2.Email and p1.Id > p2.Id;
DELETE FROM p1 USING Person p1 INNER JOIN Person p2 WHERE p1.Email=p2.Email AND p1.Id> p2.Id;