我有 3 个表消息,消息用户和用户。
我想提取用户在每个会话中收到最后一条消息的会话列表,并且我也想访问该消息的数据。对话列表的顺序应该是包含最先收到的最后一条消息的顺序。(对话只是 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
没有被查询使用。