如何检索每个组中的最后一条记录

时间:2015-06-29 06:31:41

标签: php mysql group-by

我正在尝试使用group by从我的表中获取数据。使用group by工作正常但我需要只采取每个组的最后插入项目,但它不起作用。我的查询总是返回每个组的第一项。

我的查询

SELECT id,type,userId,performDate,eventId FROM
`user_marker` where  `eventId`='842' and DATE_FORMAT(from_unixtime(performDate),'%Y%c%d')
=DATE_FORMAT(now(),'%Y%c%d') 
 and `visibility`='1'GROUP BY type ORDER BY id DESC

2 个答案:

答案 0 :(得分:0)

请尝试

SELECT a.* FROM ( SELECT id,type,userId,performDate,eventId FROM 
`user_marker` where  `eventId`='842' and DATE_FORMAT(from_unixtime(performDate),'%Y%c%d')
=DATE_FORMAT(now(),'%Y%c%d') and `visibility`='1' ORDER BY id DESC ) as a GROUP BY a.type 

答案 1 :(得分:0)

您可以按照以下方式尝试 -

SELECT b.id,b.type,b.userId,b.performDate,b.eventId 
FROM user_marker b 
JOIN (SELECT `type`,MAX(performDate) 
FROM user_marker 
WHERE  `eventId`='842' AND DATE(FROM_UNIXTIME(performDate))=CURDATE() AND `visibility`='1' 
GROUP BY `type`) a ON a.type=b.type AND a.performDate=b.performDate 
ORDER BY b.`type`;