2016-03-02 142 views
1

試圖生成用戶登錄報告。需要用戶登錄報告中用戶的最新登錄記錄

login_history表數據:

id user_id login_date_time 
1 2  2016-02-28 06:42:57 
2 2  2016-02-29 06:42:57 
3 2  2016-02-29 07:42:57 
4 3  2016-02-28 06:42:57 
5 3  2016-02-29 06:42:57 
6 3  2016-02-29 08:42:50 
7 4  2016-01-20 06:42:57 
8 4  2016-02-29 06:42:57 
9 4  2016-02-29 09:40:50 
10 5  2016-02-28 05:42:56 

登錄表:

id username mobile 
1 user1 1234567190 
2 user2 1234567892 
3 user3 2234567890 
4 user4 1234567899 
5 user5 1214567896 
6 user6 1238567891 

預期輸出:

user2 2016-02-29 07:42:57 
user3 2016-02-29 08:42:50 
user4 2016-02-29 09:40:50 
user5 2016-02-28 05:42:56 

需要有關MYSQL查詢的幫助。

+1

,什麼是您的查詢? –

回答

2

簡單INNER JOIN與分組可以給你所需要的結果集:

SELECT l.username, MAX(lh.login_date_time) 
FROM Login AS l 
INNER JOIN login_history AS lh 
    ON l.id = lh.user_id 
GROUP BY l.username 
+2

我想你忘了這個組:) – Yossi

+0

@Yossi你是對的。謝謝! –

2

所以你需要一個group by子句加入和:

SELECT t.username,max(s.login_date_time) 
FROM Login t 
INNER JOIN login_history s 
ON(s.user_id = t.id) 
GROUP BY t.username