我有以下两个表:
devices
:
tracking
:
我需要构建一个MySQL查询,它将返回具有最新经度和纬度的所有设备。可以通过仅为每个具有最新时间戳值的设备提取跟踪行来选择最新行。我无法自己构建此查询。请帮忙。
输出cols: devices.Name,devices.IMEI,tracking.latitude,tracking.longitude
感谢
答案 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