Делаю внутреннюю почту на сайте, столкнулся с такой проблемой: когда пользователь заходит в свой почтовый ящик он должен увидеть список "веток" со своими собеседниками с указанием последнего сообщения по каждой "ветке" (примерно как в вк).
Т.е. допустим авторизован пользователь Иванов, у него есть диалоги с Петровым, Сидоровым и Кузнецовым. Все сообщения хранятся в таблице messages в следующем виде:
MesageID | Otpravitel | Poluchatel | TextMеssage| DatеSend | Status |
Проблема в том, что пользователь Иванов в диалогах может быть как отправителем, так и получателем.
Как сделать так, чтобы по запросу были выбраны по 1 последнему сообщению из каждой ветки с каждым пользователем (при условии, что Иванов может быть как в Otpravitel, так и Poluchatel) и отсортировать их по дате (DateSender). И еще вопрос: возможно ли сразу же в этом запросе посчитать количество непрочитанных сообщений (в которых Иванов находится в колонке Poluchatel и колонка статус равна '1'?
|