执行语句:
delete from student where s_id not in (
select min(s_id) mid from student group by s_name) ;
报错:
You can't specify target table 'student' for update in FROM clause
意思就是不能先select出同一表中的某些值,再update这个表(在同一语句中)。
修改语句:每一个派生表都应有自己的别名
delete from student where s_id not in(select mid from (select min(s_id) mid from student group by s_name) as a);
删除成功:delete from student where s_id not in(select mid from (select min(s_id) mid
from student group by s_name) as a)
> Affected rows: 1
> 时间: 0.002s