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

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Таблица:
Код:
id --- tip_ekip --- name_ekip --- uroven
1 --- Голова --- Шлем могущества --- 5
2 --- Ноги --- Поножи легионера --- 15
3 --- Голова --- Шлем легионера --- 6
4 --- Корпус --- Доспехи рыцаря --- 9
5 --- Ноги --- Ботинки скорохода --- 10 
//и т.д
Нужно выбрать все вещи из таблицы с уникальным типом экипировки(tip_ekip) (что бы он не повторялся) и при этом отсортировать по наивысшему уровню вещи
Раньше было так:
Код:
select * from `table` group by `tip_ekip` order by `uroven` desc
Но этот запрос работает неверно. Он сперва группирует по типу, а уже потом сортирует по уровню, а нужно наоборот..
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
Код:
select `table`.* from (select * from `table` order by `table`.`uroven` desc) as `table` group by `table`.`tip_ekip`
Не самое быстрое решение, но точно будет работать. Проверил у себя.

Пробовал поиграться с HAVING & MAX, но там вылазит косяк, а разбираться сейчас нету времени, позже можем поковырять совместно. Интересно даже =)

P.S.
Но этот запрос работает неверно. Он сперва группирует по типу, а уже потом сортирует по уровню, а нужно наоборот..
Запрос, кстати, работает верно, он в точности выполняет ваши условия - сначала группировать, потом сортировать)
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Код:
select `table`.* from (select * from `table` order by `table`.`uroven` desc) as `table` group by `table`.`tip_ekip`
Не самое быстрое решение, но точно будет работать. Проверил у себя.

Пробовал поиграться с HAVING & MAX, но там вылазит косяк, а разбираться сейчас нету времени, позже можем поковырять совместно. Интересно даже =)

P.S.
Но этот запрос работает неверно. Он сперва группирует по типу, а уже потом сортирует по уровню, а нужно наоборот..
Запрос, кстати, работает верно, он в точности выполняет ваши условия - сначала группировать, потом сортировать)
Мне надо наоборот- сперва сортировать, потом группировать)
А ваш запрос работает так, как надо. Правда вот нагрузка приличная:(
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
Я сразу предупредил, что это не самое быстрое решение в плане нагрузки, но зато точно работающее. Теперь есть возможность ковырять вариации на эту тему и добиваться понижения нагрузок. :)
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Да сойдет и так:) Там выводиться будет 15 строк и то, где-то раз в часов 5-6 с пользователя :)
 
Статус
Закрыто для дальнейших ответов.
Верх Низ