Мои данные выглядит следующим образом:Как получить последние 2 элементов в каждой категории в одном выберите (с MySQL)
id|category|insertdate|title.... -------------------------------- 1|1|123|test 1 2|1|124|test 2 3|1|125|test 3 4|2|102|test 4 5|2|103|test 5 6|2|104|test 6
То, что я пытаюсь выполнить это получить последние 2 записей в каждой категории (как для того, по insertdate DESC), поэтому результат должен быть:
id|.... ---- 3|.... 2|.... 6|.... 5|....
Получение последней с помощью group by
легко, но как я могу получить последние 2 без запуска нескольких запросов?
Спасибо за любую помощь ;-)
S.
Это должно быть WHERE счетчик <2 вместо HAVING, но кроме того, что это идеальный ответ, если потенциально неэффективным, поскольку он должен пройти через каждую запись. – Welbog
Я попытался использовать HAVING во втором подзапросе, но счетчик «еще не был установлен в этот момент» или «оптимизатор выполнил наличие перед @counter» ... поэтому, конечно, WHERE также выполнит работу во внешнем один. – 2009-07-07 12:39:52