1093 - You can’t specify target table ‘emp’ for update in FROM clause
翻译为:不能先select出同一表中的某些值,再update这个表(在同一语句中)
删除工资大于部门平均工资的员工信息
delete from emp
where sal>(select avg(sal) from emp e where emp.deptno=e.deptno)
这样会报错
MySQL的delect不支持别名
参考答案可以是这样
delete from emp
where sal<(select a.avgsal from (select avg(ifnull(sal,0)) avgsal from emp e where e.deptno=deptno) a)