2016-03-24 10 views
0

私はユーザーの場所を収集し、次に地図上に各ユーザーの最新の場所を表示します。私はテーブル内のすべての場所を表示する必要はなく、最新のものだけを表示したい。どうすればいい?SQL:各ユーザーの最新の場所を取得

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 

上記のコードは、指定されたuserIDを持つ友人であるすべてのメンバーロケーションのロケーションテーブルを検索します。最新の場所をフィルタリングするinner join

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 

答えて

0

はこれを試してみてください。

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 
0

使用1以上:

関連する問題