SQL_236

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

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

方法一:

思路:

①使用子查询的方法,将emp_no进行分组后找出最小id对应的记录,再使用not in,将非最小id的记录删除。

②高赞答案都是只用一次子查询,但在MySQL中,UPDATE或DELETE中子查询不能为同一张表,所以在这里要嵌套一个子查询,另外,在MySQL中需要给子查询添加别名,否则会出错。

代码:

delete from titles_test
where id not in
(
    select 
        *
    from ( select min(id) from titles_test group by emp_no) a
)

全部评论

相关推荐

拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
2 1 评论
分享
牛客网
牛客企业服务