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