2012-01-10 14 views
3

から最大値を選択して、私は誰かを接触させた最新の時間を選択するには、このようなクエリを持っている:二つのテーブル

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

上記のコードは、各ユーザーの最後の接触時間でテーブルを提供します。今、私はユーザーと連絡先を持つ別のテーブル、他のものの中でカラムuser_idとlast_contactを持つテーブルを持っています。

どのようにして2つのテーブルを選択し、2つのテーブルから各ユーザの最終連絡時間を選択できますか?

+0

挨拶/署名はしないでください。 –

+1

ここで似たような質問がたくさんありますが、グループごとに最大のn個のタグが付いた質問 – newtover

答えて

11

このような2つの要約クエリの和集合を要約します。

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