我的数据库中有一个位置表,其中包含我系统所有用户的位置数据。
表格设计类似于
id| user_id| longitude| latitude| created_at|
现在我有一个用户ID数组,我想编写一个sql查询来选择所有这些用户的最新位置。你能帮我解决一下这个SQL查询吗?
答案 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