Mysql 错误:1093 - 无法在 FROM 子句中指定要更新的目标表
Posted
技术标签:
【中文标题】Mysql 错误:1093 - 无法在 FROM 子句中指定要更新的目标表【英文标题】:Mysql error:1093 - Can't specify target table for update in FROM clause 【发布时间】:2014-07-19 14:15:18 【问题描述】:我的数据库中有一张表employees,其中包含损坏的条目。
我试图删除它们执行:
delete from employees
where id_boss= (
select id_worker from employees e
where surname= 'XXX')
AND basic_wage>1500
但我得到下一个错误:
#1093 - 您不能在 FROM 子句中指定目标表 'pracownicy' 进行更新
我该如何克服这个问题?
【问题讨论】:
SQL query based on subquery. Retrieve transactions with data > threshold的可能重复 【参考方案1】:在 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
【讨论】:
【参考方案2】:它也正确吗? 因为它有效
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
【讨论】:
以上是关于Mysql 错误:1093 - 无法在 FROM 子句中指定要更新的目标表的主要内容,如果未能解决你的问题,请参考以下文章
Mysql 错误:1093 - 无法在 FROM 子句中指定要更新的目标表
MySQL错误1093 - 无法在FROM子句中指定更新的目标表
MySQL 错误 1093 - 无法在 FROM 子句中指定要更新的目标表(两个连接)
MySQL错误1093 - 无法在FROM子句中指定更新的目标表
MySQL 5.7 错误 (1093: You can't specify target table ___ for update in FROM 子句) - 通常的解决方案不起作用