sql查询选择每个用户的最新条目

时间:2016-05-26 20:32:25

标签: mysql sql postgresql

我的数据库中有一个位置表,其中包含我系统所有用户的位置数据。

表格设计类似于

 id| user_id| longitude| latitude| created_at|

现在我有一个用户ID数组,我想编写一个sql查询来选择所有这些用户的最新位置。你能帮我解决一下这个SQL查询吗?

2 个答案:

答案 0 :(得分:0)

在查询结尾的(......)中的user_id中,您应该插入您的用户数组..

select * from my_table 
where (user_id , created_at) in (select user_id, max(created_at) 
        from my_table
        group by user_id)
and user_id in ('user1','user2',... )  ;

答案 1 :(得分:0)

SELECT 
   t1.ID,
   t1.user_id,
   t1.longitude,
   t1.latitude,
   t1.created_at
FROM 
   YourTable t1
INNER JOIN
   (SELECT MAX(id), user_id FROM YourTable GROUP BY user_id) t2 on t2.user_id = t1.user_id
INNER JOIN
   yourArrayTable ON 
   yourArrayTable.user_id = t1.user_id