我有一个像这样的MySQL表:
登录日期为时间戳
id userID loginDate
1 524 1546538626
2 524 1546538649
3 1 1546539656
4 925 1546539681
5 1073 1546544363
6 1 1546544731
7 524 1546548094
8 1073 1546548169
9 1073 15465922
我想编写一个查询,该查询显示哪些用户最后一次登录并且还具有登录日期(无重复)。 我已经尝试过该查询,但是它显示每个用户的首次登录!
SELECT * from
(select * from lastlogin order by id desc)t
GROUP by userID
我不知道该怎么写。有人可以帮忙吗? 谢谢
答案 0 :(得分:1)
您可以尝试以下操作。
select userId,max(logindate) md
from fzxit_lastlogin
group by userid
order by userid
答案 1 :(得分:1)
如果您想从登录名中获取其他信息(例如id),则可以使用相关的子查询:
select ll.*
from lastlogin ll
where ll.id = (select ll2.id
from lastlogin ll2
where ll2.userId = l.userId
order by ll2.date desc
limit 1
);
答案 2 :(得分:0)
SELECT f.*
FROM fzxit_lastlogin f
INNER JOIN
(SELECT *, MAX(loginDate) AS MaxDateTime
FROM fzxit_lastlogin
GROUP BY userID) t
ON f.id = t.id
AND f.loginDate = t.MaxDateTime