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

时间:2014-03-10 12:21:51

标签: mysql join

我正在处理MySql并有两个表login_userslogin_timestamps

login_users保留user_idnameaddress的记录,而表login_timestamps保留user_id和{{1}的记录此表每次用户登录时都会添加一个新条目,例如,如果timestamp'1'每天登录10次,则此表将包含10个user_id'1'条目今天。

现在我需要根据上次登录时间获取用户个人资料。

例如,如果有3个用户,user_id查询应该给我3条记录及其最新登录时间。

我正在使用的查询是

MySql

但是这给了我以前登录的所有条目而不是最近的条目。

1 个答案:

答案 0 :(得分:2)

当然,如果您没有指定何时或何时或某事,您将获得所有已登录的条目,而您需要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