SQL: Как сохранить порядок строк с помощью DISTINCT?

Следующий запрос SQL:

SELECT messages.id, messages.created_at, comments.created_at FROM messages
LEFT JOIN comments ON comments.message_id = messages.id 
WHERE (messages.id IN (429,443)) 
ORDER BY GREATEST(messages.created_at, comments.created_at) DESC

возвращает:

 id         messages.created_at     comments.created_at
--------------------------------------------------------
 443                2                       5
 429                1                       4
 443                2                       3

 (I replaced dates with numbers for readability)

Чтобы получить каждый id только один раз я добавил DISTINCT :

SELECT DISTINCT messages.id FROM messages
LEFT JOIN comments ON comments.message_id = messages.id 
WHERE (messages.id IN (429,443)) 
ORDER BY GREATEST(messages.created_at, comments.created_at) DESC

Но в результате значения id изменили порядок:

id
---
429
443

В чем может быть причина?

Как мне сохранить порядок?

5
задан skaffman 11 August 2011 в 21:40
поделиться