LEXAlForpostl
Мой дом здесь!
- Регистрация
- 21 Май 2008
- Сообщения
- 766
- Реакции
- 228
- Автор темы
- #1
Здравствуйте.
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
Но запрос выдает все сообщения "простынёй",а мне надо только последнее сообщение из каждой переписки конкретного юзера (не важно входящее или исходящее сообщение).
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
Но запрос выдает все сообщения "простынёй",а мне надо только последнее сообщение из каждой переписки конкретного юзера (не важно входящее или исходящее сообщение).