我正在开发一个具有表格的聊天功能cases
,entries
并且attachments
. 每个聊天(案例)都有包含一个或多个附件的聊天条目。附件可以是例如文本消息或视频消息。现在,我正在努力在聊天概述中显示特定聊天(案例)的最后一条聊天消息 - 我只设法获得其中一个聊天对话(最新一个)的最后一条聊天消息。
预期的结果应该是带有标题和最后一条聊天消息的正在进行的聊天对话列表,例如:
IT 支持聊天
我已经解决了这个问题...
客服聊天
很简单,你只需要重新...
简化表结构:
案例
id | title
-----|-----------------
1 | IT-support chat
参赛作品
id | case_id | time_created
-----|--------------|--------------
15 | 1 | ...
16 | 1 | ...
附件
id | entry_id | payload
-----|--------------|--------------------------------------------
1 | 15 | Who solved the issue?
2 | 16 | I have solved the issue with the meatballs
此查询仅选择其中一个案例的最后一条聊天消息,而不是每个案例的最后一条聊天消息:
SELECT
cases.title AS caseTitle,
last_chatmsg.payload AS lastChatMsg
FROM
cases
LEFT JOIN (
SELECT
entries.case_id,
attachments.payload
FROM
entries, attachments
WHERE
entries.id = attachments.entry_id
ORDER BY
entries.time_created DESC
LIMIT 1
)
last_chatmsg ON last_chatmsg.case_id = cases.id
GROUP BY cases.id
关于如何让它发挥作用的任何想法?