2010-07-25 67 views
1

用戶
簡單MYSQL GROUP BY和加入

  • ID - 主鍵,AI
  • 用戶名 - VARCHAR(50)

登錄

  • login_time - 日期時間
  • member_id - INT(11)

該SQL選擇中期和最大login_time和排序DESC
SELECT member_id,MAX(login_time)隨着時間的FROM登錄 GROUP BY member_id ORDER BY時間倒序

問題
你如何選擇,並加入到用戶名的member_id每一行?

回答

1
SELECT u.username, max(l.login_time) as time FROM logins l 
LEFT JOIN users u ON (l.member_id = u.id) 
GROUP BY l.member_id ORDER BY time DESC 
1
SELECT l.member_id, max(l.login_time) as time, u.username FROM logins as l 
join users as u on u.id = l.member_id 
GROUP BY l.member_id ORDER BY l.time DESC 
+0

MYSQL拋出一個錯誤ORDER BY l.time。我更喜歡寫'table t',而不是使用通常用於列別名的關鍵字'as'。 – rrrfusco 2010-07-26 18:36:01