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

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

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

delete from titles_test
where id not in ( select * from ( select min(id) from titles_test GROUP by emp_no) as a);

先筛选每组emp_no最小id的记录(min&group),在删除id不在筛选条件里的记录。(delete from 表名 where 列名 not in)。 完成上述操作后会报错,主要原因是MySQL的UPDATE或DELETE中子查询不能为同一张表。 解决办法:把子查询表添加别名(select * from … as 别名)

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务