删除emp_no重复的记录,只保留最小的id对应的记录。
insert into titles_test values (‘1’, ‘10001’, ‘Senior Engineer’, ‘1986-06-26’, ‘9999-01-01’),
(‘2’, ‘10002’, ‘Staff’, ‘1996-08-03’, ‘9999-01-01’),
(‘3’, ‘10003’, ‘Senior Engineer’, ‘1995-12-03’, ‘9999-01-01’),
(‘4’, ‘10004’, ‘Senior Engineer’, ‘1995-12-03’, ‘9999-01-01’),
(‘5’, ‘10001’, ‘Senior Engineer’, ‘1986-06-26’, ‘9999-01-01’),
(‘6’, ‘10002’, ‘Staff’, ‘1996-08-03’, ‘9999-01-01’),
(‘7’, ‘10003’, ‘Senior Engineer’, ‘1995-12-03’, ‘9999-01-01’);
![在这里插入图片描述](https://img-blog.csdnimg.cn/8db37f2342734b12b0004de17c102fb9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-r5oiR6ICB5Lyv,size_20,color_FFFFFF,t_70,g_se,x_1
❌错误示范
这个时候我想的是
delete from titles_test
where id not in
(select MIN(id) from titles_test group by emp_no);
这个代码是从title_test表中选出id不在 下面是是查询出最小id,且不重复的,删掉。
✔正确解释
mysql不允许在查询的同时删除原表数据,如果向删除,必须给原始数据表取一个别名再删除,查询出结果,给结果取别名之后再删除
故有:
delete from titles_test
where id not in(
select * from
(select MIN(id) from titles_test group by emp_no) a);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/115419.html