繁体   English   中英

根据最近登录的日期时间连接两个表

[英]joining two tables based on recent logged in datetime

我正在使用MySql并有两个表login_userslogin_timestamps

login_users保存user_idnameaddress的记录,而table login_timestamps保留user_idtimestamp的记录,每次用户登录时该表都会添加一个新条目,例如,如果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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM