从表中删除雇员名字相同的员工记录(需要最少保留一条记录)

Posted 750657961

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从表中删除雇员名字相同的员工记录(需要最少保留一条记录)相关的知识,希望对你有一定的参考价值。

 

表中数据:

 

执行语句:

mysql> delete from emp where empNO not in (select min(empNO) from emp group by ename);
ERROR 1093 (HY000): You can\'t specify target table \'emp\' for update in FROM clause

 

MySQL出现You can’t specify target table for update in FROM clause
这个错误的意思是不能在同一个sql语句中,先select同一个表的某些值,
然后再update这个表。
这个错误在oracle中不会出现!


修改语句后执行:OK
delete from emp where empNO not in
(
select *
from
(
select min(empNO)
from emp
group by ename
)
a);

 

以上是关于从表中删除雇员名字相同的员工记录(需要最少保留一条记录)的主要内容,如果未能解决你的问题,请参考以下文章

删除一张表中重复数据并保留一条ID最小的记录

MySQL删除重复数据只保留一条

SQL删除重复数据只保留一条

SQL删除重复数据只保留一条

用SQL语句,删除掉重复项只保留一条

为啥access数据表中有一条记录不能修改