我收集用户位置,然后在地图上显示每个用户的最新位置。我不想在表格中显示所有位置,只显示最新的位置。我该怎么做?
select loc_userid, loc_lat, loc_lon, loc_date
from friends f
join location l
on l.loc_userid = f.friendid
where f.userid = 1
上面的代码在位置表中搜索具有指定用户ID的朋友的所有成员位置。
答案 0 :(得分:0)
试试这个:
SELECT l.loc_userid, l.loc_lat, l.loc_lon, l.loc_date
FROM friends f
JOIN location l
ON l.loc_userid = f.friendid
WHERE f.userid = 1
ORDER BY f.loc_date DESC
LIMIT 1
答案 1 :(得分:0)
再使用一个inner join
过滤掉最新位置。
select l.loc_userid, l.loc_lat, l.loc_lon, l.loc_date
from friends f
inner join location l
on l.loc_userid = f.friendid
inner join (select loc_userid, MAX(loc_date) as max_loc_date
from location group by loc_userid) l2
on l.loc_userid = l2.loc_userid and l.loc_date = l2.loc_date
where f.userid = 1