2013-02-10 34 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做)

相關問題