2013-03-21 71 views
0

我在此查询中使用了两个表。第一个表是“用户”,第二个表是“日志”。我试图显示来自“users”的列“用户名”和来自日志的“time_stamp”列,但我只希望结果显示每个“用户名”的最新“time_stamp”无法写入MySQL查询以正常工作

这是我的查询:

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 

它乍看上去还行,但它不显示最近针对每个用户的TIME_STAMP。我无法弄清楚我做错了什么,任何帮助将不胜感激。

感谢

+0

如果你只是想最近的时间戳,你为什么让用户操作?如果用户登录不是最近的操作,它现在不会显示最新的时间戳,是吗? – 2013-03-21 10:33:34

+0

那么我在该列中有更多的操作,而不仅仅是“用户登录”。 – Alex 2013-03-21 11:01:28

回答

0

您应该使用MAX聚合函数:

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