MySQL查询 - 检索具有最新时间戳值的所有设备信息

时间:2013-02-17 10:43:19

标签: mysql sql phpmyadmin

我有以下两个表:

devices

enter image description here

tracking

enter image description here

我需要构建一个MySQL查询,它将返回具有最新经度和纬度的所有设备。可以通过仅为每个具有最新时间戳值的设备提取跟踪行来选择最新行。我无法自己构建此查询。请帮忙。

输出cols: devices.Name,devices.IMEI,tracking.latitude,tracking.longitude

感谢

2 个答案:

答案 0 :(得分:3)

从跟踪中获取最佳数据

select *
from   tracking join (select imei, max(ctimestamp) as maxtime
                      from tracking
                      group by imei) as sub
       on sub.imei = tracking.imei
          and sub.ctimestamp = tracking.timestamp

你一定可以加入设备表并自己打印名称

答案 1 :(得分:2)

这应该这样做,使用左连接以确保没有更新的行;

SELECT d.name, d.IMEI, t.latitude, t.longitude
FROM devices d
JOIN tracking t 
    ON d.IMEI=t.IMEI
LEFT JOIN tracking t2
     ON d.IMEI=t2.IMEI
    AND t2.ctimestamp>t.ctimestamp
WHERE t2.IMEI IS NULL

SQLfiddle for testing