当我运行此查询时
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”附近使用正确的语法
有人可以告诉我原因以及如何修改代码? 非常感谢你!
答案 0 :(得分:1)
问题:您在两个不同的上下文中引用了表Apply
两次。
解决方案:给他们不同的别名,例如Apply as a1
和Apply as a2
(也许这也需要Student
)