編寫一個 SQL 查詢,來刪除 Person
表中所有重複的電子郵箱,重複的郵箱裏只保留 Id 最小 的那個。
+----+------------------+ | Id | Email | +----+------------------+ | 1 | [email protected] | | 2 | [email protected] | | 3 | [email protected] | +----+------------------+ Id 是這個表的主鍵。
例如,在運行你的查詢語句之後,上面的 Person
表應返回以下幾行:
+----+------------------+ | Id | Email | +----+------------------+ | 1 | [email protected] | | 2 | [email protected] | +----+------------------+
DELETE FROM Person WHERE Id NOT IN
(SELECT min_id FROM (SELECT MIN(Id) AS min_id From Person GROUP BY Email) AS MinId);
DELETE p2 FROM Person p1 JOIN Person p2
ON p2.Email = p1.Email WHERE p2.Id > p1.Id;
DELETE p2 FROM Person p1, Person p2
WHERE p1.Email = p2.Email AND p2.Id > p1.Id;