Mysql错误:1093 - 无法在FROM子句中指定更新目标表

时间:2014-05-29 22:31:22

标签: mysql subquery mysql-error-1093

我的数据库中有一个包含损坏条目的表员工。

我试图删除它们:

delete from employees 
where id_boss= (
select id_worker from employees e
where surname= 'XXX')
AND basic_wage>1500

但我得到了下一个错误:

  

#1093 - 您无法指定目标表' pracownicy'用于FROM子句中的更新

我怎样才能克服这个?

2 个答案:

答案 0 :(得分:0)

在MySQL中,您无法从同时选择的行中删除。要解决这个问题,你可以使用另一个子查询隐藏这个事实,或者你可以把它变成像这样的连接

delete e_emp
from employees e_emp
join employees e_boss on e_boss.id_worker = e_emp.id_boss 
where e_boss.surname = 'XXX'
AND e_emp.basic_wage > 1500

答案 1 :(得分:0)

它也正确吗? 因为它有效

DELETE e_emp FROM  employees e_emp, 
(SELECT id_boss FROM employees  WHERE surname='XXX') AS e_boss
WHERE e_emp.id_boss=e_boss.id_worker
AND e_emp.basic_wage>1500