mysql - 错误1093(HY000): You can't specify target table 'employee_salary' for update in FROM clause

标签 mysql

Delete from employee_salary
where emp_id in(
          select emp_id from
          employee_salary 
          group by emp_id,project,salary 
          having count(*)>1
);
ERROR 1093 (HY000): You can't specify target table 'employee_salary' for update in FROM clause

如何解决这个问题以及为什么这个查询没有运行?

最佳答案

试试这个:

Delete from employee_salary
where emp_id in(
         select * from (
          select emp_id from
          employee_salary 
          group by emp_id,project,salary 
          having count(*)>1 ) 
        as alias
)

我正在更改结果集的名称,以便它可以正常工作。

关于mysql - 错误1093(HY000): You can't specify target table 'employee_salary' for update in FROM clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48071733/

相关文章:

mysql - SQL查询显示组合两个表且在其他表中不存在的数据行

php - 没有密码但 key 授权安全的Mysql服务器?

php - 如何在不显示 ID 的情况下唯一标识记录?

mysql - SQL,按日期间隔查询

php - Retrieve data from sql database and display in tables - 根据选中的复选框显示某些数据

javascript - 动态创建的PHP数组字段不使用mysql将数据保存在表中

php - 从存储过程中显示简单的 COUNT(s)

mysql - 如何比较两个 MySQL 表然后更新其中一个

mysql - 如何通过插入到表中从mysql中的表中选择来添加额外的行?

mysql - 为什么我的第一列在输入时被跳过?