0

テーブル内の別の値に基づいてテーブル内の特定の行を更新しようとしていますが、その方法がわかりません。

UPDATE users AS a SET a.val = (SELECT value FROM users WHERE userid = 4) WHERE a.userID = 1

しかし、私はエラーが発生しています

Lookup Error - MySQL Database Error: You can't specify target table 'a' for update in FROM clause

私がここで見逃しているアイデアはありますか?

4

1 に答える 1

1

JOIN構文と非等結合を使用する

UPDATE users a JOIN users b
    ON a.userID = 1
   AND b.userid = 4
   SET a.value = b.value

これがSQLFiddleのデモです

于 2013-08-15T19:27:33.733 に答える