У меня есть следующая таблица:
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
s: 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.