[英]Mysql Query to find last logged in date of each user
I have two tables tbl_user and tbl_lastlogin as shown below 我有两个表tbl_user和tbl_lastlogin,如下所示
Table tbl_user 表tbl_user
id| name
---------
1 | user1
2 | user2
3 | user3
Table tbl_lastlogin 表tbl_lastlogin
id | loginid | date_lastlogin
----------------------------
1 | 1 | 2014-03-28
2 1 2014-03-29
3 2 2014-02-14
4 2 2014-02-15
Relation of Above table (tbl_user.id = tbl_lastlogin.loginid) 上表的关系(tbl_user.id = tbl_lastlogin.loginid)
How do I get output as. 我如何获得输出。
id | name| date_lastlogin
---------------------
1 |user1 | 2014-03-29
2 |user2 | 2014-02-15
3 |user3 | null
I need most recently logged in date of each user. 我需要最近登录每个用户的日期。
Thank you. 谢谢。
You need to join your tables and get max of last login date 您需要加入表格并获取最后一次登录日期
SELECT u.id,u.name,MAX(l.date_lastlogin) date_lastlogin
FROM tbl_user u
LEFT JOIN tbl_lastlogin l ON(u.id=l.loginid )
GROUP BY u.id
If you only need the last login date you can use an embbeded select into main select-list: 如果您只需要上次登录日期,则可以使用嵌入式选择进入主选择列表:
select id, name,
(select max(date_lastlogin)
from tbl_lastlogin ll
where ll.loginid = u.id) as 'date_lastlogin`
from tbl_user u;
Just an advice, the name tbl_lastlogin
is not too much addecuate, becasue It stores the login history not only the last one, maybe tbl_loginhistory
or something like that 只是一个建议,名称
tbl_lastlogin
不是太多addecuate,因为它存储登录历史不仅是最后一个,也许是tbl_loginhistory
或类似的东西
我相信LEFT OUTER JOIN和GROUP BY会帮助你。
Try this 尝试这个
SELECT U.id,U.name,UL.date_lastlogin FROM tbl_user U
LEFT JOIN tbl_lastlogin UL ON U.id=UL.loginid
GROUP BY UL.loginid
ORDER BY UL.date_lastlogin DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.