[MySQL]Группировка по условия

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
2 таблицы
Users (`id`, `name`)
Messages (`id`, `sender_user_id`, `receiver_user_id`, `title`, `text`, `time`)

Необходим запрос, который вместо messages.id из `sender_user_id`, `receiver_user_id` подставляет users.name и группирует все пары `sender_user_id`, `receiver_user_id` и наоборот `receiver_user_id`, `sender_user_id`
Две эти строки должны попасть в одну группу.
`sender_user_id`, `receiver_user_id`
1(айди первого юзера), 2 (айди второго юзера)
2(айди второго юзера) , 1(айди первого юзера)

Без группировки запрос у меня получится вот такой:
SELECT
*,
`users`.`id` as user_id
FROM
`messages`
JOIN `users` ON `messages`.`sender_user_id` = `users`.`id`
WHERE
`messages`.`receiver_user_id` = '" . $user_info->id . "'
OR
`messages`.`sender_user_id` = '" . $user_info->id . "'
ORDER BY
`messages`.`time` DESC

Но запрос выдает все сообщения "простынёй",а мне надо только последнее сообщение из каждой переписки конкретного юзера (не важно входящее или исходящее сообщение).
 
Уважаемый,
Вы бы разместили здесь sql скрипт для создания и наполнения данных таблиц. Таким образом специалисты могли бы создать ваши таблицы, не потратив на это времени. Уважайте время специалистов, оно обычно стоит денег.
И далее, Вы разместили бы пример результата запроса в том виде, в котором хотите получить.
Тогда было бы более-менее понятно, что нужно сделать.
 
Назад
Сверху