Я разрабатываю функцию чата с таблицами cases
, entries
и attachments
. Каждый чат (случай) имеет записи чата, которые имеют одно или несколько вложений. Вложения могут быть, например, текстовое сообщение или видео сообщение. Сейчас я пытаюсь представить последнее сообщение чата для определенного чата (случая) в обзоре чата - мне удается получить только последнее сообщение чата одного из разговоров чата (самое последнее).
ожидаемым результатом должен быть список текущих разговоров в чате с заголовком и последним сообщением, например:
чат службы поддержки
У меня есть решил проблему с помощью ...
Чата службы поддержки клиентов
Это просто, вам просто нужно восстановить ...
Упрощенная структура таблицы:
Шкафы
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
Есть идеи, как заставить это работать?