MySQL您无法在FROM子句中指定要更新的目标表

时间:2013-02-10 01:43:00

标签: mysql

当我运行此查询时

update Apply 
set major='CSE'
where major='EE' and sID in (select sID from Student
                             where GPA >= all (select GPA from Student
                       where sID in (select sID from Apply
                             where major='EE')));

它返回错误:ERROR 1093(HY000):您无法在FROM子句中为更新指定目标表'Apply'。但它在另一个MySQL中取得了成功。

如果我在代码末尾添加“as tmp”,则会返回错误:ERROR 1064(42000):SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第6行的“as tmp”附近使用正确的语法

有人可以告诉我原因以及如何修改代码? 非常感谢你!

1 个答案:

答案 0 :(得分:1)

问题:您在两个不同的上下文中引用了表Apply两次。

解决方案:给他们不同的别名,例如Apply as a1Apply as a2

(也许这也需要Student