Вот мой код:SQL GROUP BY выбора
mysql_query("SELECT * FROM messages WHERE to_user_id = '$user_id' GROUP BY from_user_id ORDER BY read,sent_date DESC")
и вот моя структура таблицы
Я использую GROUPY BY from_user_id
заявление кратко показать список "разговоров" вместо каждого отдельного сообщения. Как это
Но, как вы можете видеть на картинке, два верхних навыворот, первый говорит «1 неделю назад» и один ниже говорит «2 дня назад ». Причина того, что они находятся в неправильном порядке, вызвана оператором GROUP BY from_user_id
. Потому что он группирует все сообщения от этого пользователя, и он не будет иметь самое последнее время на нем.
Так что мой вопрос:
Как я могуGROUP BY from_user_id
самым последним запись?
Какое программное обеспечение базы данных? –
Просто переделал его MySQL. Это должно быть из-за оператора mysql_query во включенном PHP-коде, и потому, что только MySQL позволяет вам злоупотреблять семантикой GROUP BY таким образом. : S –
Группировка from_user_id означает, что для сообщений от этого пользователя будет один вывод строки, независимо от того, сколько целых цепочек (-ов) он участвует. В вашей таблице есть поле идентификатора беседы? –