196. 刪除重複的電子郵箱(SQL)
阿新 • • 發佈:2021-01-30
技術標籤:databaseleetcode easyleetcode
題目:https://leetcode-cn.com/problems/delete-duplicate-emails/
編寫一個 SQL 查詢,來刪除Person表中所有重複的電子郵箱,重複的郵箱裡只保留Id最小的那個。
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected]
+----+------------------+
Id 是這個表的主鍵。
例如,在執行你的查詢語句之後,上面的 Person 表應返回以下幾行:
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | [email protected] |
| 2 | [email protected] |
+----+------------------+
提示:
執行 SQL 之後,輸出是整個 Person表。
使用 delete 語句。
程式碼:
DELETE P1 FROM Person P1, Person P2 WHERE P1.Email = P2.Email AND P1.Id > P2.Id
DELETE p1
就表示從p1表中刪除滿足WHERE
條件的記錄,p1和p2都是指向原表的