Как вернуть список диалогов на основании сообщений?

-929206895.png

Имеется таблица с сообщениями пользователя, нужно SQL запросом выбрать список диалогов. Фактически, нужно получить по 1 строке с каждым пользователем (user_id), сортируя по дате.

На скриншоте выделены строки, которые должны быть в ответе.
  • Вопрос задан
  • 3141 просмотр
Решения вопроса 1
Не самое красивое и очень тяжелое решение, на больших таблицах будет тормозить.

SELECT id, user_id, read_state, text, date, out
FROM Table AS T1
WHERE date = ( SELECT MAX(date) FROM Table Where user_id=T1.user_id )

или
SELECT T1.id, T1.user_id, T1.text, T1.date
FROM Table1 AS T1 INNER JOIN
( SELECT user_id, MAX(date) AS date FROM Table1 GROUP BY user_id) AS T2
ON T1.user_id=T2.user_id AND T1.date=T2.date

есть FAQ на эту тему
www.sql.ru/forum/687908/faq-vyborka-pervoy-posledn...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы