Mysql查询 - 分组由一个字段和另一个字段排序

时间:2011-10-18 15:46:13

标签: mysql sql

我在使用MySQL查询时遇到了一些麻烦,希望能得到一些帮助。查询似乎相当简单,但我似乎无法做到正确。

我有一个名为login的表,其中包含以下字段: login_id PK member_id来自成员表的FK stamp - 成员登录时的UNIX时间戳

每次成员登录时都会在此表中插入一条记录。

我想要做的就是获取每个member_id和最新的登录名,即最高的标记值。我试过了:

SELECT member_id,FROM_UNIXTIME(stamp) as log_time 
FROM `logins` 
WHERE member_id = 27
GROUP BY member_id
ORDER BY stamp DESC

但结果不是我想要的,我只是得到了每个成员登录的第一条记录。

如果有人可以提供帮助,我们将非常感谢,谢谢!

4 个答案:

答案 0 :(得分:4)

SELECT member_id, max(stamp) FROM `logins` GROUP BY member_id

答案 1 :(得分:4)

我认为这就是你想要的:

SELECT member_id, FROM_UNIXTIME(MAX(stamp)) AS log_time
FROM logins
GROUP BY member_id
ORDER BY stamp DESC

每个成员ID,以及最近登录的时间,按每个人的登录时间降序排序(最近一次)。

答案 2 :(得分:3)

尝试用MAX(标记)替换字段列表中的标记

答案 3 :(得分:1)

如果你想获得特定用户的近期时间,你甚至不需要分组,只需使用:

SELECT MAX(stamp) FROM logins WHERE member_id = 27