набор сообщений в Facebook - PullRequest
       23

набор сообщений в Facebook

0 голосов
/ 26 февраля 2010

Я пытаюсь разобраться с группой по команде, в основном я пытаюсь выбрать все сообщения пользователя, сгруппировать их по темам, а затем показать их - так же, как это делает Face Book.

Результат должен содержать идентификатор самого последнего сообщения, идентификатор отправителя, дату и общее количество сообщений в этой теме.

Таблица сообщений может выглядеть следующим образом:

message
-------
id
sender_id
subject
created_at

Таким образом, в результате должны отображаться все сообщения пользователя, сгруппированные по одной теме.

1 Ответ

1 голос
/ 26 февраля 2010
SELECT sender_ID, subject, MAX(id), MAX(created_at), COUNT (id) 
FROM message 
WHERE recipient_id = current_user_id OR sender_id = current_user_id
GROUP BY subject, sender_ID, receipient_id
ORDER BY MAX(created_at) DESC

При использовании GROUP BY все, что отсутствует в предложении GROUP BY, должно быть в статистической функции (например, COUNT, SUM, MAX и т. Д.) В операторе SELECT.

РЕДАКТИРОВАТЬ - понял, что Group By выше не совсем то, что я думаю, что вы хотите (хотя бы пример набора результатов поможет), поэтому одна мысль, чтобы упростить это. Во время создания сообщения вы можете установить дополнительное значение столбца - journal_id. Это будет присвоено новому значению при создании нового сообщения и последующем повторном использовании для любых ответов. После этого вы можете сгруппировать по параметру Chat_id группировать сообщения так, как я думаю, вы хотите, чтобы они были

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...