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): FROM 句での更新にターゲット テーブル 'Apply' を指定できません。しかし、別の MySQL では成功します。

コードの末尾に「as tmp」を追加すると、エラーが返されます。エラー 1064 (42000): SQL 構文にエラーがあります。6行目の「as tmp」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

誰かが理由を教えてもらえますか?また、コードを変更するにはどうすればよいですか? どうもありがとうございました!

4

1 に答える 1

1

Apply問題: 2 つの異なるコンテキストでテーブルを 2 回参照しています。

Apply as a1解決策: それらに異なるエイリアスを与えます。Apply as a2

(たぶん、これも のために行う必要がありますStudent)

于 2013-02-10T01:47:13.107 に答える