Выборка с сортировкой

Нужно сделать выборку: выбрать последние записи и только у каждого пользователя всего одну. Пишу данный 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
→ Ссылка