从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列以获得更好的性能
这给'#1111 - 无效使用组function'的 – bicycle 2013-08-23 12:37:58