Обновить значение в поле с несколькими условиями

smarton
Дата: 20.01.2013 03:02:12
Помогите, пожалуйста, правильно написать запрос обновления значения в поле 1-й таблицы при условии наличия определенного значения в поле 2-й таблицы. Детали ниже.
UPDATE vr_users SET user_pm_num =0 WHERE user_pm_num =1 WHERE vr_messages.pm_read =yes WHERE vr_messages.id = vr_users.user_id GROUP BY vr_users.user_id

Обновить в таблице vr_users значение поля user_pm_num на 0, если значение в этом поле (user_pm_num) было 1 при условии, что в таблице vr_messages поле pm_read равно значению yes и учитывая id записей в обеих таблицах.
smarton
Дата: 20.01.2013 03:14:33
Попробовал вот так:
UPDATE vr_users SET user_pm_num =0 WHERE user_pm_num =1 AND vr_messages.pm_read =yes AND vr_messages.id = vr_users.user_id GROUP BY vr_users.user_id

Ошибка: Unknown column 'vr_messages.pm_read' in 'where clause'
Не видит таблицу vr_messages, считает, что поле pm_read находится в текущей таблице (vr_users). Думаю дальше...
smarton
Дата: 20.01.2013 03:25:30
Попробовал также:
UPDATE vr_users SET user_pm_num =0 WHERE user_pm_num =1 AND pm_read =yes FROM vr_messages AND vr_messages.id = vr_users.user_id

Ошибка синтаксиса: You have an error in your SQL syntax. Не нравится ему, как я написал 'FROM vr_messages AND vr_messages.id = vr_users.user_id'
Люди добрые, помогите написать. Я плохо разбираюсь в MySQL, а написать запрос нужно.
smarton
Дата: 20.01.2013 03:28:16
Для знающих MySQL, написать - раз плюнуть. Не оставайтесь равнодушными.
так,
Дата: 20.01.2013 03:53:55
smarton
Обновить в таблице vr_users значение поля user_pm_num на 0, если значение в этом поле (user_pm_num) было 1 при условии, что в таблице vr_messages поле pm_read равно значению yes и учитывая id записей в обеих таблицах.

update vr_users
set user_pm_num=0
where user_pm_num=1
  and exists (select 1 from vr_messages where vr_messages.id = vr_users.user_id and pm_read='yes')