Выборка с сортировкой
Нужно сделать выборку: выбрать последние записи и только у каждого пользователя всего одну. Пишу данный SQL:
SELECT `id`, `to_id`, `owner_id`, `timestamp_created`, `type`, `text`
FROM `messages`
WHERE `owner_id` = :owner_id
GROUP BY `to_id` DESС
Но выбираются первые записи, а мне нужны последние.
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Попробуйте так:
SELECT `id`, `to_id`, `owner_id`, `timestamp_created`, `type`, `text`
FROM `messages`
WHERE `id` IN (
SELECT MAX(`id`)
FROM `messages`
WHERE `owner_id` = :owner_id
GROUP BY `to_id`
)
ORDER BY `id` DESC