|
|
|
| Доброе время суток!
# 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
Кто -либо может подсказать нормальное решение? | |
|
|
|
|
|
|
|
для: yumi
(23.11.2005 в 09:56)
| | Ключевые слова INNER JOIN и ON не поддерживаются оператором UPDATE в MySQL - следует использовать просто запятую и WHERE-условие. Но боюсь, MySQL 3.23.58 может не поддерживать многотабличный UPDATE - уж очень версия древняя - в настоящее время рекомендованной версией является 5.0.15 и ведётся разработка над 5.1. | |
|
|
|