2012-01-10 4 views
3

У меня есть запрос, как это, чтобы выбрать самый последний раз кто-то связался:Выберите максимальное значение из двух таблиц

SELECT `user_id`, `last_contact` 
    FROM `emails_sent` 
group by `user_id` 
order by `last_contact` desc 

Приведенный выше код дает таблицу с момента последнего контакта для каждого пользователя. Теперь у меня есть другая таблица с контактами для пользователей, таблица с столбцами user_id и last_contact, среди прочего.

Как сделать мой выбор использовать обе таблицы и выбрать последнее время контакта для каждого пользователя из двух таблиц?

+0

Пожалуйста, никаких поздравлений/подписей. –

+1

есть много подобных вопросов, посмотрите на любой вопрос с тегом «наибольший-n-на-группу» – newtover

ответ

11

Подведите итог объединению двух сводных запросов, что-то вроде этого.

SELECT user_id, 
     MAX(user_date) user_date 
    FROM 
    (
    SELECT user_id, 
      MAX(last_contact) user_date 
     FROM emails_sent 
     GROUP BY user_id 
    UNION ALL 
    SELECT whatever_user_id_column user_id, 
      MAX(whatever_date_column) user_date 
     FROM whatever_table 
     GROUP BY user_id 
    )a 
GROUP BY user_id 
+0

тоже работал на mssql. – Mukus

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