通过cakephp从组中获取最后一条记录

时间:2013-04-11 07:38:15

标签: mysql cakephp phpmyadmin

我有2个表:User和LoginLogs以及User和LoginLog都有'很多'关系。 我必须从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 :(得分:0)

为什么你使用限制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

答案 1 :(得分:-1)

在伪代码中:

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

假设LoginLog中有自动增量PK列

不要忘记索引userId列以获得更好的性能