我有两个表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
我需要最近登录每个用户的日期。
谢谢。
答案 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