使用子查询进行MySQL更新

时间:2013-08-15 19:20:02

标签: mysql select sql-update subquery

我正在尝试根据该表中的其他值更新表中的特定行,但我似乎无法弄清楚如何执行此操作:

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

我在这里缺少什么想法?

1 个答案:

答案 0 :(得分:1)

使用JOIN语法和非等连接

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

这是 SQLFiddle 演示