2013-02-10 37 views
0

当我运行此查询MySQL中,你不能指定目标表更新在FROM子句

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子句中更新。但它在另一个MySQL中成功。

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

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

+0

的可能重复[MySQL错误1093 - 无法指定目标表更新在FROM子句(http://stackoverflow.com/问题/ 45494/MySQL的错误-1093-着-指定目标表换更新功能于从子句) – 2014-05-25 08:26:18

回答

1

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

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

(也许这也需要为Student做)

相关问题