MySQL обновление с подзапросом

Я пытаюсь обновить определенную строку в таблице на основе другого значения в этой таблице, но я не могу понять, как это сделать:

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 ответ

Решение

Использование JOIN синтаксис и неравное соединение

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

Вот демоверсия SQLFiddle

Другие вопросы по тегам