SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.07.2011 13:39:39

Elfet
Участник
Зарегистрирован: 25.07.2011
Сообщений: 1

Получение последней записи при группировке. Вывод диалогов сообщений.

Всем привет! Прошу помощи разобраться в том как сделать следующее.


Есть таблица с сообщениями:
message_id    message_user_id    message_sender_id    message_text    message_date
3    72589    72590    Hi Elfet! Its test123!    2011-07-22 15:35:36
5    72590    72589    Hi! I am Elfet;    2011-07-22 19:15:57
6    72589    72590    Ou. Realy?    2011-07-22 19:16:44
7    72590    72589    YES!    2011-07-22 19:22:23
9    72590    72589    ПРИВЕТ! ЭТО ELFET!    2011-07-25 12:23:14
10    72589    72591    Hi from Explorer!!!!    2011-07-25 13:12:43


Нужно сгруппировать сообщения по диалогам и вывести последнее сообщение.
9    72590    72589    ПРИВЕТ! ЭТО ELFET!    2011-07-25 12:23:14
10    72589    72591    Hi from Explorer!!!!    2011-07-25 13:12:43



Я пробую делать так:
SELECT * FROM `messages` WHERE `message_user_id`=72589 GROUP BY message_sender_id, message_user_id ORDER BY message_date DESC


Однако получаю вместо этого
10    72589    72591    Hi from Explorer!!!!    2011-07-25 13:12:43
3    72589    72590    Hi Elfet! Its test123!    2011-07-22 15:35:36


То есть первое сообщение из группы.

Как получить последнее? Заранее спасибо!



Комментарий модератора.
См Вывод последней записи при группировке. В этой статье приведено 5 вариантов решения в один запрос.

Неактивен

 

#2 28.07.2011 07:04:25

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Получение последней записи при группировке. Вывод диалогов сообщений.

При группировке нельзя выбирать поля, по которым не производится группировка или они не имеют группирующей функции.
Такие запросы запрещены синтаксисом SQL, но MySQL их выполняет выбирая произвольную строку.

Сначала нужно выбрать message_sender_id, message_user_id, max(message_date), а затем по этим значениям выбирают остальные поля.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson