Таблица PHP Mysql: сообщения
id sender receiver time_sent Message SendDel RecDel 1 1 3 2011-08-17 14:00:00 [text] 0 0 2 3 1 2011-08-17 15:00:00 [text] 0 0 3 2 4 2011-08-18 14:19:28 [text] 1 0 4 4 2 2011-08-18 15:19:28 [text] 0 0
Цель состоит в том, чтобы получить сообщение с наибольшим значением (MAX) и группировать сообщения на основе отправителя, получателя. Таким образом, идентификаторы сообщений 1 и 2 будут группироваться вместе, а id 3 и 4 будут группироваться вместе.
Пример: вошел в систему userid = 2.
id sender receiver time_sent Message SendDel RecDel 4 4 2 2011-08-18 15:19:28 [text] 0 0
Я не уверен, почему, но мой запрос не группирует все сообщения вместе. Вот мой запрос:
SELECT id, sender, receiver, MAX(time_sent), MAX(message) FROM Messages WHERE sender='$userid' OR receiver = '$userid' Group By sender,receiver Order BY time_sent DESC
Любые решения?
Вы хотите:
Таким образом, идентификаторы сообщений 1 и 2 будут группироваться вместе, а id 3 и 4 будут группироваться вместе.
Вы должны будете сделать какое-то волшебство в клаузуле, чтобы это произошло.
SELECT id, sender, receiver, MAX(time_sent), MAX(message) FROM Messages WHERE sender='$userid' OR receiver = '$userid' Group By (if(sender > receiver, sender, receiver)) , (if(sender > receiver, receiver, sender)) Order BY time_sent DESC