Добрый вечер! Есть таблица в формате:
id | type | body
================
1 | 3 | text
2 | 2 | text
3 | 3 | text
4 | 1 | text
5 | 2 | text
6 | 2 | text
То есть одна колонка с типом записи (int 1-3), другая с текстом. Как вытащить последнюю запись для каждого type? То есть последнюю для type = 1, type = 2, type = 3 одним запросом?
Из примера таблицы нужно вытащить id 6,4,3 (три уникальных типа, сортированных по id)
Помогите составить MYSQL запрос
Re: Помогите составить MYSQL запрос
Код: Выделить всё
SELECT id FROM table_name WHERE 1 GROUP BY type ORDER BY id DESC
Код: Выделить всё
SELECT MAX( id ) AS id FROM table_name WHERE 1 GROUP BY type ORDER BY id DESC
Re: Помогите составить MYSQL запрос
Этим запросом выводит последнюю запись. Пытался как-то скомбинировать distinct с type in, но оказалось что distinct только один столбик выводит.
Re: Помогите составить MYSQL запрос
Богдан
Код: Выделить всё
---- Структура таблицы `test`-- CREATE TABLE IF NOT EXISTS `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type` int(11) NOT NULL DEFAULT '0', `body` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; ---- Дамп данных таблицы `test`-- INSERT INTO `test` (`id`, `type`, `body`) VALUES(1, 3, 'some text #1'),(2, 2, 'some text #2'),(3, 3, 'some text #3'),(4, 1, 'some text #4'),(5, 2, 'some text #5'),(6, 2, 'some text #6');
Код: Выделить всё
SELECT MAX( id ) AS id, bodyFROM testWHERE 1 GROUP BY TYPE ORDER BY id DESC
id По убыванию body
6 some text #2
4 some text #4
3 some text #1