![](/img/trans.png)
[英]MySQL - Joining two tables with datetime columns on Date and three most recent entries before that date
[英]joining two tables based on recent logged in datetime
我正在使用MySql
并有两个表login_users
和login_timestamps
表login_users
保存user_id
, name
和address
的记录,而table login_timestamps
保留user_id
和timestamp
的记录,每次用户登录时该表都会添加一个新条目,例如,如果user_id
'每天登录10次,这个表今天有10个user_id
'条目。
现在我需要根据他们上次登录的时间获取用户配置文件。
例如,如果有3个用户, MySql
查询应该给我3条记录及其最新登录时间。
我正在使用的查询是
SELECT * FROM login_users LEFT JOIN login_timestamps ON login_users.user_id = login_timestamps.user_id ORDER BY login_timestamps.timestamp DESC
但这给了我所有以前登录的条目,而不是最近的条目。
当然,当你没有指定何时或什么日期或某事时,你将获得所有登录的条目,你需要一个where子句。
试试看:
SELECT * FROM login_users
LEFT JOIN login_timestamps ON login_users.user_id = login_timestamps.user_id
WHERE DATE(`timestamp`) = CURDATE()
ORDER BY login_timestamps.timestamp DESC
这将为您提供康复日的条目。 当然,你可以指定你想要的任何条件。
编辑:从你的评论。
试试看
SELECT l.user_id, max(timestamp) as lasttime
FROM login_users l
LEFT JOIN login_timestamps lt ON l.user_id = lt.user_id
GROUP BY l.user_id
ORDER BY lasttime DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.