执行以下语句:
delete from titles_test
where id not in(
select min(id)
from titles_test
group by emp_no
);
报出错误:
OperationalError: (1093, “You can’t specify target table ‘titles_test’ for update in FROM clause”)
不能先select出同一表中的某些值,再update这个表(在同一语句中)
(MySQL的UPDATE或DELETE中子查询不能为同一张表)
办法:把子查询表添加别名就可以了,如下:
delete from titles_test where id not in
( select *from(
select min(id) from titles_test group by emp_no)
as a
);
若报出错误:
OperationalError: (1248, ‘Every derived table must have its own alias’)
“每个获得的表必须有自己的别名”
办法:给新生成的表添加别名