gpt4 book ai didi

mysql - mysql查询应该是什么来获取存储在同一个表中的一组用户最近添加的消息

转载 作者:行者123 更新时间:2023-11-29 04:45:38 25 4
gpt4 key购买 nike

我有如下表结构

enter image description here

我希望结果是

enter image description here

这是我试过的查询

select * from table where userid IN(201,202,203,204,205)
group by userid
order by messageid desc

但我无法根据 messageid 获取最新记录。我需要在单个查询中写这个,因为我必须使用 order by 子句

请解释我的错误并提供解决方案

最佳答案

如果我正确理解您的问题,您可以使用 messageidmax 将表自身连接起来:

select t.messageid, t.userid, t.data
from yourtable t
join (
select max(messageid) maxmessageid, userid
from yourtable
where userid in (201,202,203,204,205)
group by userid
) t2 on t.userid = t2.userid and t.messageid = t2.maxmessageid
order by t.messageid desc

编辑:这是使用 IN 的替代方法:

select messageid, userid, data
from yourtable
where messageid in (
select max(messageid) maxmessageid
from yourtable
where userid in (201,202,203,204,205)
group by userid
)
order by messageid desc

关于mysql - mysql查询应该是什么来获取存储在同一个表中的一组用户最近添加的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19431874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com