gpt4 book ai didi

mysql - "desc"分组依据不适用于 join

转载 作者:行者123 更新时间:2023-11-29 21:34:49 25 4
gpt4 key购买 nike

我有这张表“聊天”

id | id_user_1  | id_user_2
----------------------------
1 111 117
2 113 115
3 112 111

还有这个“消息”:

id | message | message_date | id_sender | id_chat
-------------------------------------------------
1 first xx/xx/xx 111 1
2 second xx/xx/xx 117 1
3 abc xx/xx/xx 113 2
4 first xx/xx/xx 112 3
5 second xx/xx/xx 111 3

我需要列出每个用户的最后一条消息,我知道还有其他类似的问题,但我找不到我在这里做错了什么;这是我的查询:(问题是我收到第一条消息,而不是每个用户的最后一条消息)

select t1.id, t2.message, t2.message_date
from chat as t1
join chat_messages as t2
where
(t1.id_user_1 = 111 or t1.id_user_2 = 111)
and
(t1.id = t2.id_chat)
group by t2.id_chat desc

此返回:

 id | message | message_date | 
------------------------------
3 first xx/xx/xx
1 first xx/xx/xx

什么时候应该是:

 id | message | message_date | 
------------------------------
3 second xx/xx/xx
1 second xx/xx/xx

一切看起来都很好,除了“desc”部分,它在连接之前起作用,但在连接之后不起作用。我的查询有什么问题?

最佳答案

不是最好的解决方案,但您可以尝试像这样的简单方法:

select * from (select t1.id, t2.message, t2.message_date
from chat as t1
join messages as t2 on t1.id=t2.id_chat
where
(t1.id_user_1 = 111 or t1.id_user_2 = 111)
and
(t1.id = t2.id_chat)

order by message desc) a

group by id

如果您有其他要求,它可能会完全改变

这是sqlfiddle

关于mysql - "desc"分组依据不适用于 join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005457/

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