Вот моя проблема, в моем почтовом ящике отображается несколько сообщений, которые я получил только от одного пользователя. Мне нужно отображать мой почтовый ящик так же, как facebook. Отображается только одно сообщение от одного пользователя. Очень похоже на вид разговора. При этом во входящих показывается последнее сообщение между мной и пользователем (либо его последнее сообщение, либо мой последний ответ ему).
Я попробовал GROUP BY, но результаты неточны. Некоторые последние сообщения не отображаются и не сортируются по дате последнего разговора.
Вот моя структура базы данных:
+-----------------------------------------------------------------------------------+
| users_messages |
+-----------------------------------------------------------------------------------+
| message_ID | sender |receiver| date | subject | body | unread | delete1 | delete2 |
+-----------------------------------------------------------------------------------+
+---------------------+
| members |
+---------------------+
| id | username | ...
+----+----------+-----+
Вот мой текущий запрос:
$result = $DB->query("SELECT p.*, p.sender as sender, m.*
FROM " . DB_PREFIX . "messages p
LEFT JOIN " . DB_PREFIX . "members m ON p.sender=m.member_id
WHERE p.receiver='" . $SESSION->conf['member_id'] . "' AND delete2=0
GROUP BY p.sender ORDER BY p.senddate DESC
LIMIT " . (($page - 1) * $PREFS->conf['per_page']) . ", " . $PREFS->conf['per_page']);
GROUP BY
будет недостаточно. - person Kaivosukeltaja   schedule 04.01.2013GROuP BY
наp.sender
не решит проблему? - person Joddy   schedule 04.01.2013