deniev
@deniev

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

61638d4961ad0841508774.png

Есть н количество пользователей и сообщений, как запросить список пользователей с которыми у пользователя 1 есть либо отправленные либо полученные сообщении, чтобы список сортировался по sent_at будь то отправленные сообщении или полученные.

Спасибо,
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
SELECT CASE WHEN sender_id = 1
            THEN receiver_id
            ELSE sender_id 
            END AS buddy
FROM message
WHERE 1 IN (sender_id, receiver_id)
GROUP BY buddy
ORDER BY MAX(sent_at)


Ну и соответственно
SELECT user.username
FROM user
JOIN ( SELECT CASE WHEN sender_id = 1
                   THEN receiver_id
                   ELSE sender_id 
                   END AS id,
              MAX(sent_at) sent_at
       FROM message
       WHERE 1 IN (sender_id, receiver_id)
       GROUP BY 1 ) ids USING (id)
ORDER BY ids.sent_at
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы