Помогите составить MYSQL запрос

Программирование, которое не связано с API.
Ответить
Аватара пользователя
Богдан
Сообщения: 21
Зарегистрирован: 26 дек 2010, 05:22

Помогите составить MYSQL запрос

Сообщение Богдан »

Добрый вечер! Есть таблица в формате:

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)
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Помогите составить MYSQL запрос

Сообщение Serge »

Код: Выделить всё

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
хотя, по идее, первый запрос тоже самое должен выдать.
Аватара пользователя
Богдан
Сообщения: 21
Зарегистрирован: 26 дек 2010, 05:22

Re: Помогите составить MYSQL запрос

Сообщение Богдан »

Этим запросом выводит последнюю запись. Пытался как-то скомбинировать distinct с type in, но оказалось что distinct только один столбик выводит. :(
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Помогите составить MYSQL запрос

Сообщение Serge »

Богдан

Код: Выделить всё

---- Структура таблицы `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
Ответить