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

Тема в разделе "Базы данных", создана пользователем LEXAlForpostl, 8 дек 2017.

Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    750
    Симпатии:
    227
    Здравствуйте.
    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

    Но запрос выдает все сообщения "простынёй",а мне надо только последнее сообщение из каждой переписки конкретного юзера (не важно входящее или исходящее сообщение).