Есть 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
Ответ
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
Комментариев нет:
Отправить комментарий