@atambalasi

Как получить список диалогов из таблицы?

Есть таблица
1b2c14d83b724990a5c390cc7f506406.png
Как получить список последних сообщения для одного юзера (есть юзер ид)?
Мой запрос
SELECT * FROM msg msg1 LEFT JOIN msg msg2 
ON (msg1.to_uid=msg2.to_uid AND msg1.id < msg2.id) 
                        WHERE msg2.id IS NULL AND msg1.frm_uid = 35 OR msg1.to_uid = 35

С этим запросом получаю все сообщения юзера по ид 35. Как получить последнее сообщения ?
Например

id frm_uid to_uid msg
99 35 44 бла бла
101 44 35 Хе хе
111 35 55 Ку ку
303 100 35 Go!

Из этих данных должен получиться
id frm_uid to_uid msg
101 44 35 Хе хе
111 35 55 Ку ку
303 100 35 Go!

Т.е эти сообщения в одном диалоге
id frm_uid to_uid msg
99 35 44 бла бла
101 44 35 Хе хе
последний из них 44 написал 35 для юзера 35
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 1
alsopub
@alsopub
Не вдаваясь в суть запроса, если нужно ограничить количество и при этом иметь порядок, то надо добавить: ORDER BY msg1.time DESC LIMIT 10
Но что-то мне подсказывает что у вас проблема в запросе, но я никак не могу понять что вы хотите получить.
Попробуйте:
SELECT * FROM msg WHERE frm_id=35 OR to_id=35 ORDER BY time DESC LIMIT 2;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
15 мая 2024, в 22:07
3000 руб./за проект
15 мая 2024, в 22:06
3000 руб./за проект
15 мая 2024, в 20:48
5000 руб./за проект