2010-11-09 6 views
0

У меня есть 2 таблицы, одна для user_data и одна для user_stats. Я пытаюсь обновить поле в user_data для всех пользователей до одного значения («активно») на основе последнего поля входа в таблицу user_stats.Обновление массовой таблицы MySQL на основе значений второго поля таблицы

Im пытается избежать цикла, поскольку все соответствующие поля будут только обновлены до «active».

Heres в основном то, что им пытаются сделать: UPDATE статус user_data SET = 'активный' WHERE user_stats.login < = '$ last_login'

+0

Возможно, вы захотите изменить свой предыдущий вопрос и удалить его; как вы просите то же самое. – GendoIkari

ответ

1

Что-то вроде следующего присоединиться должно работать:

UPDATE user_data, user_stats 
SET user_data.status='active' 
WHERE user_stats.user_id=user_data.user_id 
AND user_stats.last_login <= '$lastlogin' 

Вы, возможно, потребуется изменить поля, используемые для объединения таблиц в запросе обновления в соответствии с вашими таблицами.

0

Вы должны гнездо запрос затем:

UPDATE user_data статус SET = 'активный' WHERE user_id IN (SELECT ID FROM user_stats WHERE '$ last_login' Войти < =)

В целом, я бы рекомендовал, учитывая в целом другая архитектура

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