LINUX.ORG.RU

mysql попытка выполнения UPDATE


0

0

# mysql -V
mysql Ver 11.18 Distrib 3.23.58, for redhat-linux-gnu (i386)

имеем две таблицы user, qm/.
В обеих есть поле gr_id/.
необходимо связать их и выполнить update в таблице user при определенных условиях.
Делаю так:
UPDATE user INNER JOIN qm ON user.gr_id = qm.gr_id SET user.usr_quota = user.quota_max + qm.quota*1048576 + if(user.usr_quota<0,user.usr_quota,0);

получаю ошибку:
#1064 - You have an error in your SQL syntax near 'INNER JOIN qm ON user.gr_id = qm.gr_id SET user.usr_quota = user.quota_max + qm.' at line 1

Пробую по-другому:
UPDATE user, qm SET user.usr_quota = user.quota_max + qm.quota*1048576 + if(user.usr_quota<0,user.usr_quota,0) WHERE user.gr_id = qm.gr_id

#1064 - You have an error in your SQL syntax near ' qm SET user.usr_quota = user.quota_max + qm.quota*1048576 + if(user.usr_quota<0' at line 1

Кто -либо может подсказать нормальное решение?

anonymous

PS: В начале по тексту следует читать:

"имеем две таблицы user, qm.
В обеих есть поле gr_id."

anonymous
()
Ответ на: комментарий от anonymous

Я бы на твоем месте задал этот вопрос на sql.ru

Насколькоя я знаю, стандарт SQL не предусматривает такую возможность, поэтому у всех СУБД она реализуется по-своему.

anonymous
()
Ответ на: комментарий от anonymous

Cпасибо, разобрался - эта версия мускля не поддерживает в update INNER JOIN, решил по-другому

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.