文巾解题 196. 删除重复的电子邮箱
生活随笔
收集整理的這篇文章主要介紹了
文巾解题 196. 删除重复的电子邮箱
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 題目描述
2 解題思路
2.1 雙表聯(lián)立
DELETE p1 FROM Person p1, Person p2 WHERE p1.Email = p2.Email AND p1.Id > p2.Id把相同郵箱,大的都去掉
2.2 使用子查詢
用子查詢的分組操作,找到每一個email的最小id號,然后將不是最小id號的刪除
DELETE p1 FROM Person p1 WHERE p1.Id NOT IN (SELECT(a.id) FROM(SELECT MIN(P2.Id) AS idFROM PERSON P2GROUP bY P2.Email) a)這道題卡了一段時間,一開始我是這么寫的:
DELETE p1 FROM Person p1 WHERE p1.Id NOT IN (SELECT MIN(P2.Id) AS idFROM PERSON P2GROUP bY P2.Email)然后報(bào)錯“You can't specify target table 'p1' for update in FROM clause“
什么意思呢?就是我們在DELETE Person表的同時,對Person表進(jìn)行了子查詢,SELECT篩選操作。
解決方法就像上面一樣,我們再套一層。這樣進(jìn)行DELETE和篩選的表就不一樣了
總結(jié)
以上是生活随笔為你收集整理的文巾解题 196. 删除重复的电子邮箱的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文巾解题 1418. 点菜展示表
- 下一篇: 文巾解题 1711. 大餐计数