通过DeviceId查询上一个条目组

时间:2010-05-06 10:17:36

标签: mysql database distinct

我有数据库表日志,如下所示:

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

那么,你能帮我从表中提取最新的条目吗?感谢。

1 个答案:

答案 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