Mysql Query查找每个用户的上次登录日期

时间:2014-03-29 10:45:07

标签: mysql

我有两个表tbl_user和tbl_lastlogin,如下所示

表tbl_user

id|  name 
---------
1 | user1 
2 | user2 
3 | user3

表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

上表的关系(tbl_user.id = tbl_lastlogin.loginid)

如何获得输出。

id | name| date_lastlogin
---------------------
1  |user1 | 2014-03-29 
2  |user2 | 2014-02-15
3  |user3 | null

我需要最近登录每个用户的日期。

谢谢。

4 个答案:

答案 0 :(得分:2)

您需要加入表格并获取最后一次登录日期

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

答案 1 :(得分:1)

如果您只需要上次登录日期,则可以使用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;

只是一个建议,名称tbl_lastlogin不是太多addecuate,因为它存储登录历史不仅是最后一个,可能是tbl_loginhistory或类似

答案 2 :(得分:0)

LECON OUTER JOIN和GROUP BY将帮助您,我相信。

答案 3 :(得分:0)

试试这个

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