0

我在此查询中使用了两个表。第一个表是“用户”,第二个表是“日志”。我正在尝试显示“用户”中的“用户名”列和日志中的“时间戳”列,但我只希望结果显示每个“用户名”的最新“时间戳”

这是我的查询:

 SELECT users.username, logs.time_stamp 
 FROM users, logs 
 WHERE users.u_id=logs.user_id 
   AND logs.user_action='user login' 
 GROUP BY (username) 
 ORDER BY logs.time_stamp DESC

这就是我得到的:

Alex   2013-02-20 10:51:52
Bill   2013-02-13 12:32:33
Mike   2013-02-13 10:53:47
Rick   2013-02-08 12:34:50
Admin  2013-02-08 01:55:31

乍一看,它看起来不错,但它没有显示每个用户的最新时间戳。我无法弄清楚我做错了什么,任何帮助将不胜感激。

谢谢

4

1 回答 1

0

You should use MAX aggregate function:

SELECT
  users.username,
  MAX(logs.time_stamp)
FROM
  users INNER JOIN logs ON users.u_id=logs.user_id
WHERE 
  logs.user_action='user login' 
GROUP BY username
于 2013-03-21T10:33:00.900 回答