2013-08-15 7 views
0

Я пытаюсь обновить определенную строку в таблице на основе другого значения в этой таблице, но я не могу показаться, чтобы выяснить, как это сделать:обновления 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 демо

+0

Спасибо! Немного отличается от SQL-сервера, к чему я привык. – rjbogz

+0

@ user1911612 Вы очень желанны. Удачи :) – peterm

Смежные вопросы