题解 | #删除emp_no重复的记录,只保留最小的id对应的记录。#

删除emp_no重复的记录,只保留最小的id对应的记录。

http://www.nowcoder.com/practice/3d92551a6f6d4f1ebde272d20872cf05

思路是,找到是最小id的,然后删掉不是最小id的。错误做法:

DELETE FROM titles_test WHERE id NOT IN 
(SELECT MIN(id) FROM titles_test GROUP BY emp_no);

错误原因是:MySQL中不允许在子查询的同时删除表数据(不能一边查一边把查的数据删了)

正确做法如下。即加一层select。

DELETE FROM titles_test WHERE id NOT IN 
(SELECT * FROM (SELECT MIN(id) FROM titles_test GROUP BY emp_no) t1);
全部评论

相关推荐

AAA专业长城贴瓷砖刘大爷:这样的简历我会直接丢进垃圾桶,花里胡哨的
点赞 评论 收藏
分享
哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务