Как выполнить запрос?

sani

Новичок
Как выполнить запрос?

Только не бейте меня за это... Я же новичок-с..

Такая проблема:

----------------------------
Таблица 1 ( users ):

user(varchar) | points(int)

'Andrej' | 54
'Dima' | 363
'Kolja' | 23

-----------------------------
Таблица 2 ( answers ):

ID(prim.key) | user(varchar) | answ(int)

1 | 'Andrej' | 3
2 | 'Dima' | 6
3 | 'Kolja' | 3


Вопрос: Как сделать одним заросом чтобы в Таблице 1 (users) поля (point) величились на 10, где в Таблице 2 (answers) поле answ равно 3, полагаясь на идентичные поля user в обеих таблицах?

В результате должно получиться так:

----------------------------
Таблица 1 ( users ):

user(varchar) | points(int)

'Andrej' | 64
'Dima' | 363
'Kolja' | 33
---------------------------

Таблица 2 остается без изменения.

Если тут нужен какой-нить из JOIN методов, то объясните, люди добрые, как это сделать... :confused:
 

Andreika

"PHP for nubies" reader
Код:
Multiple-table syntax: 

UPDATE [LOW_PRIORITY] [IGNORE] table_references
    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_definition]
Here is an example:

[sql]UPDATE `items`,`month` SET items.price=month.price
WHERE items.id=month.id;[/sql]

чего-то непонятно?
а вот хранить в 1ой и связывать обе таблицы по user(varchar) вместо ID(prim.key) как-то не очень...
 

sani

Новичок
Да.. Спасибо. :)

-~{}~ 19.05.06 12:48:

Кстате, а как монжо сделать такое:

----------------------------
Таблица 1 ( users ):

user(varchar) | points(int)

'Andrej' | 54
'Dima' | 363
'Kolja' | 23

-----------------------------
Таблица 2 ( answers ):

ID(prim.key) | user(varchar) | answ(int)

1 | 'Andrej' | 3
2 | 'Dima' | 6
3 | 'Kolja' | 3
4 | 'Andrej' | 7

Возмём, что если поле answ(int) = 3 или 7, то тогда приплюсовываем к user 10 очков. Но проблема в том, что запрос:

UPDATE `users`,`answers` SET 'points' = 'points' + 10 WHERE `users`.`user` = `answers`.`user` AND ((`answ` = 7) OR (`answ` = 3));


К 'Andrej' МуСКуЛ приплюсовывает токо 10, вместо положенных 20... %(
 

eps

Новичок
что за бред?
>>Возмём, что если поле answ(int) = 3 или 7, то тогда приплюсовываем к user 10 очков

UPDATE users, answers SET users.points=users.points+10 WHERE (users.user=answer.user AND (answers.answ='3' OR answers.answ='7'))
 
Сверху