从cakephp获取群组中的最后一条记录

问题描述:

我有2个表格:User和LoginLogs以及User和LoginLog有'很多'关系。 我必须从LoginLog表中获取用户的最后一次登录。我必须使用group by来查询上次登录用户的详细信息。 以下是查询:从cakephp获取群组中的最后一条记录

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 

此查询返回第一个登录记录。

为什么要使用限制20?使用极限0,1对于由login_datetime DESC找到第一个创纪录的订单

试试这个

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 

伪代码:

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

假设有在LoginLog

自动增量PK列

别忘了索引用户id列以获得更好的性能

+0

这给'#1111 - 无效使用组function'的 – bicycle 2013-08-23 12:37:58