我有数据库表日志,如下所示:
alt text http://www.freeimagehosting.net/uploads/16e974703a.jpg
我想提取设备的最后一个条目,pollDate,status。例如。
deviceId,pollDate,status
1,2010-95-06 10:53:28,1
3,2010-95-06 10:26:28,1
我尝试运行以下查询,但distinct只选择第一个记录,而不是最新的
SELECT DISTINCT deviceId, pollDate, status
FROM logs
GROUP By deviceId
ORDER BY pollDate DESC
alt text http://www.freeimagehosting.net/uploads/5d181103f8.jpg
那么,你能帮我从表中提取最新的条目吗?感谢。
答案 0 :(得分:1)
如果(deviceID, poll_date)
是唯一的,您可以执行以下操作:
SELECT *
FROM (
SELECT deviceid, MAX(poll_date) AS md
FROM logs
GROUP BY
deviceid
) q
JOIN logs l
ON l.deviceid = q.deviceid
AND l.poll_date = q.md