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