我遇到了一个混乱的局面。。。在mysql中有一个如下所示的表:
----locations----
+--------------------------------------------------------+
| id | time | lat | lon | vehicle_id|
| 1 | 1513865119 |13.0398796 | 77.6242876 | 1 |
| 2 | 1513865119 |13.0398796 | 77.6242876 | 1 |
| 3 | 1513865119 |13.0398796 | 77.6242876 | 2 |
| 4 | 1513865119 |13.0398796 | 77.6242876 | 2 |
| 5 | 1513865119 |13.0398796 | 77.6242876 | 4 |
| 6 | 1513865119 |13.0398796 | 77.6242876 | 3 |
| 7 | 1513865119 |13.0398796 | 77.6242876 | 2 |
| 8 | 1513865119 |13.0398796 | 77.6242876 | 3 |
| 9 | 1513865119 |13.0398796 | 77.6242876 | 3 |
| 10 | 1513865119 |13.0398796 | 77.6242876 | 1 |
+--------------------------------------------------------+
我正在尝试获取每个车辆id的最后已知位置
以下是我尝试的:
SELECT * FROM `locations` ORDER BY id DESC limit 1
但是上面的代码只返回一辆车。
我需要以同样的方式重新检查所有的车辆,那么我该怎么做呢?
提前谢谢。
3条答案
按热度按时间xa9qqrwz1#
这似乎是您想要的查询:
这和你的
locations
表到查找每辆车的最新记录的子查询。我使用上面的“似乎”是因为你的样本数据,可能是巧合,显示了每辆车相同的准确时间。当然,为了让我的回答有意义,你需要有更多的答案time
每辆车最近记录的值。7xzttuei2#
作为你的标签
ejk8hzay3#
使用distinct,如下所示: