最近我开始研究一个项目。我想在其中获取插入数据库的最后一条记录。
查询是:
SELECT c.lat, c.lng, LAST(v.count)
FROM camera_camera c , camera_cameravehiclecount v
WHERE c.id = v.cameraid
我正在使用LAST()
聚合函数,但我收到此错误:
1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法 使用camera_camera c附近的'(v.count),camera_cameravehiclecount v 在哪里c.id = v.came'在第1行
我交叉检查w3school的语法,但我仍然收到此错误。我使用DB4free作为我的在线数据库。请告诉我我在哪里做错了。
答案 0 :(得分:2)
w3页面提示了一种解决方法,因为LAST不在mysql中。 http://www.w3schools.com/sql/sql_func_last.asp
您可以尝试这样做:
SELECT c.lat, c.lng, v.count
FROM camera_camera c , camera_cameravehiclecount v
WHERE c.id = v.cameraid
ORDER BY v.count DESC
LIMIT 1
答案 1 :(得分:1)
首先,您需要学习使用正确的JOIN
语法。简单规则:从不在FROM
子句中使用逗号。 始终使用明确的JOIN
。
其次,您需要一个列来指定最后一个。假设它是车辆计数表上的id
。然后,您将使用order by
和limit
:
SELECT c.lat, c.lng, LAST(v.count)
FROM camera_camera c JOIN
camera_cameravehiclecount v
ON c.id = v.cameraid
ORDER BY v.id DESC
LIMIT 1;
注意:ORDER BY v.count DESC
不合适,除非您知道该列只是在增加。