Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Личные сообщения. Вывод диалогов

#php #mysql #sql #база_данных


Есть 2 таблицы.

[users]

 - id
 - name

[prmess]

 - id
 - date
 - from_id
 - to_id
 - text
 - view (boolean) 1/0


Собственно с выводом данных конкретного диалога/добавлением сообщений и т.п. проблем
нет. Возникает проблема с выводом списка диалогов. То есть сообщения от меня к пете,
и от пети ко мне это один диалог, а как составить запрос таким образом? более того
нужно как-то суммировать непрочитанные сообщения (view) в этом диалоге только от собеседника
(исключая свои).
На выходе должно получиться что то вроде:


Собеседник [Петя], непрочитанных сообщений [2], id собесед.=2
Собеседник [Вася], непрочитанных сообщений [5], id собесед.=3
Собеседник [Женя], непрочитанных сообщений [0], id собесед.=4
Собеседник [Коля], непрочитанных сообщений [1], id собесед.=5

    


Ответы

Ответ 1



select name,sum(not_view) msg_cnt,int_id from ( select if(from_id=1,to_id,from_id) int_id, 1-view not_view from prmess where from_id=1 or to_id=1 ) A join users2 on id=int_id group by int_id

Комментариев нет:

Отправить комментарий