想要从表中检索名称行的最新时间戳。但是只有表“location”有时间戳。 我使用 INNER JOIN 将表“elderly1”和“location”连接在一起。我只能证明我已经从“位置”表中检索到最新的时间戳,但没有检索到最新的“纬度”和“经度”。请帮忙。
查询
SELECT e.name,e.illness, e.patient_id,e.patient_image,e.area, e.arduino_mac,
l.arduino_mac, l.latitude, l.longitude,MAX(l.timestamp) as ts
FROM elderly1 e
JOIN location l
on e.arduino_mac = l.arduino_mac
WHERE e.arduino_mac = l.arduino_mac
GROUP BY e.name
ORDER BY l.timestamp
最佳答案
不知道每个表的候选键很难说太多,但通常你必须确保 SELECT
子句在功能上依赖于 GROUP BY
子句.鉴于您对问题的表述,我建议如下:
SELECT e.name,e.illness, e.patient_id,e.patient_image,e.area, e.arduino_mac,
l.arduino_mac, l.latitude, l.longitude, l.timestamp as ts
FROM elderly1 e
JOIN ( SELECT l1.arduino_mac, l1.latitude, l1.longitude, l1.timestamp
FROM location l1
WHERE timestamp = ( SELECT MAX(timestamp)
FROM LOCATION l2
WHERE l1.arduino_mac = l2.arduino_mac )
) as l
on e.arduino_mac = l.arduino_mac
ORDER BY l.timestamp
关于php - 使用 INNER JOIN 从表中检索最新的时间戳行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26133655/