SELECT * FROM `admin` GROUP BY ORDER BY `date` DESC LIMIT 1000
Добавляю GROUP BY:
SELECT * FROM `admin_log` GROUP BY admin_log.id ORDER BY `date` DESC LIMIT 1000
Подскажите как можно исправить запрос, чтобы из каждой группы вывести значение максимального элемента по дате.
(т.е группировка по id а выводить id из группы с максимальной датой)
PS:
структура БД.
CREATE TABLE IF NOT EXISTS `admin_log` (
`log_type` int(5) NOT NULL,
`id` int(11) NOT NULL,
`admin` text CHARACTER SET utf8 NOT NULL,
`comment` text CHARACTER SET utf8 NOT NULL,
`date` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Спустя 40 минут, 2 секунды (29.03.2010 - 08:30) maxims написал(а):
Всё дело в том что Вы сначала группируете, а потом сортируете....
поможет вот это
поможет вот это
SELECT r . *
FROM (SELECT * FROM `admin_log` ORDER BY `date` DESC )r
GROUP BY `id`
ORDER BY r.`date` DESC
LIMIT 1000
Спустя 7 минут, 9 секунд (29.03.2010 - 08:37) Vladok написал(а):
Спасибо. Не учел.
_____________