У меня есть следующая таблица:
id time text otheridentifier
-------------------------------------------
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2
Что я хочу сделать, это выбрать 3 самые последние записи (по времени), чьи otheridentifier
различны. Так что в этом случае результат будет id
: 5, 4 и 2.
id
= 3 будет пропущено, поскольку есть более поздняя запись с тем же полем otheridentifier
.
Вот что я пытался сделать:
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
Однако в итоге я получаю строки id
= 5, 3 и 1 вместо 5, 4, 2, как и ожидалось.
Может кто-нибудь сказать мне, почему этот запрос не вернул то, что я ожидал? Я попытался изменить ORDER BY на ASC, но это просто переставило возвращаемые строки в 1, 3, 5.