@Morozken

Как сделать выборку mysql для конкретной таблицы?

Приветствую!

Есть вот такая таблица (рис. 1) которая представляет из себя чат между двумя собеседниками.
Необходимо сделать выборку так что бы получилось увидеть последние сообщения из каждой группы двух собеседников (рис. 2)
Сложность заключается в том что user_id 0 и user_id 1 это один user_id.

5afb12dfdf4e4626629531.png
рис. 1

5afb1301f1a87629216975.png
рис. 2
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Сделать выборку времени последней записи по каждой паре абонентов и присоединить к ней эту же таблицу по абонентам и времени.
Ответ написан
@haramba
Почему вопросы о про битрикс такие тупые?
Select o.* from (
Select max(updated_at) as maxdate,  sender_user_id, recipient_user_id
from chattable 
group by sender_user_id, recipient_user_id
) as t
join chattable as o on t.sender_user_id=o.sender_user_id and t.recipient_user_id=o.recipient_user_id and t.maxdate=o.upadet_at

Вместо updated_at можно использовать created_at или id
отфильтровать пользователей 0 и 1 проще в клиентском скрипте, php или другое, либо дополнительным запросом по данной выборке
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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