0

当我运行这个查询

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): You can't specify target table 'Apply' for update in FROM 子句。但它在另一个 MySQL 中成功了。

如果我在代码末尾添加“as tmp”,它会返回错误:ERROR 1064 (42000): You have an error in your SQL syntax; 检查与您的 MySQL 服务器版本相对应的手册,以在第 6 行的“as tmp”附近使用正确的语法

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

4

1 回答 1

1

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

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

(也许这也需要为Student

于 2013-02-10T01:47:13.107 回答