从CakePHP中按组获取最后一条记录

3

我有两个表格:User(用户)和LoginLogs(登录日志),并且User和LoginLog之间有“has Many”关系。 我需要从LoginLog表中获取用户的最后一次登录记录。我需要使用group by查询最后一次登录用户的详细信息。 以下是查询语句:

SELECT * FROM `login_logs` 
AS `LoginLog` 
LEFT JOIN `users` 
AS `User` 
ON (`LoginLog`.`user_id` = `User`.`id`) 
WHERE 1 = 1 GROUP BY `LoginLog`.`user_id` 
ORDER BY `LoginLog`.`login_datetime` DESC LIMIT 20

这个查询返回第一条登录记录。

2个回答

0
为什么要使用 limit 20?使用 limit 0,1 来查找按登录时间倒序的第一条记录。
你可以尝试这个方法。
SELECT * FROM `login_logs` 
AS `LoginLog` 
LEFT JOIN `users` 
AS `User` 
ON (`LoginLog`.`user_id` = `User`.`id`) 
WHERE 1 = 1  ORDER BY `LoginLog`.`login_datetime` DESC LIMIT 0 ,1

-1

伪代码:

 SELECT * FROM LoginLog 
 WHERE MAX(LoginLog.primary_id) AND user.id = loginLog.userId

假设在LoginLog表中有自增主键列

别忘了为userId列建立索引以获得更好的性能


这个错误信息是“#1111 - 无效的分组函数使用”。 - bicycle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接