gpt4 book ai didi

mysql - 聚合连接表的最大元素

转载 作者:行者123 更新时间:2023-11-29 04:22:35 28 4
gpt4 key购买 nike

我有 3 个表 message、message user 和 user。

我想提取用户收到每条消息的最后一条消息的对话列表,我也想访问这条消息的数据。对话列表的顺序应该是包含最先收到的最后消息的那些。(对话只是 message.conversation 上的一个 id)

我得到的东西几乎是这样工作的:

SELECT mu.*
, m.id message_id
, m.conversation message_conversation
, m.from message_from
, m.text message_text
, m.date_created message_date_created
, user1.type user1_type
, user1.name user1_name
, user1.email user1_email
, user1.avatar_blob_key user1_avatar_blob_key
FROM message_user mu
LEFT
JOIN message m
ON m.id = mu.message
LEFT
JOIN user user1
ON user1.id = m.from
WHERE mu.to = THE_USER_ID
GROUP
BY m.conversation
ORDER
BY mu.message DESC;

但是这个查询并没有得到最后收到的消息,而是每个对话中的第一条消息:/

看起来这部分 ORDER BY message_user.message DESC 没有被查询使用。

最佳答案

SELECT mu.*
, message.id message_id
, message.conversation message_conversation
, message.from message_from
, message.text message_text
, message.date_created message_date_created
, user1.type user1_type
, user1.name user1_name
, user1.email user1_email
, user1.avatar_blob_key user1_avatar_blob_key
FROM message_user mu
LEFT
JOIN (select max(id) id,`from`
from message
group by `from`)max
ON max.id = mu.message
LEFT
JOIN user user1
ON user1.id = message.from
WHERE mu.to = THE_USER_ID
GROUP
BY message.conversation
ORDER
BY mu.message DESC;

关于mysql - 聚合连接表的最大元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19661595/

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