| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > select и group by чет я не понимаю |
| Автор: DooZ 26.5.2010, 00:29 |
| Здравствуйте, что-то не пойму, есть запрос SELECT id, id_subcategory FROM images WHERE id_category='1' GROUP BY id_subcategory ORDER BY id DESC должен возвращать значения с большего ИД (order by) в целом выборка работает, но ID не сортируются выдается первый ИД что найдет (наименьший) подскажите где ошибка? как запрос изменить? заранее спасибо |
| Автор: Данкинг 26.5.2010, 01:02 |
| Не работал с мускулом, но всё равно спрошу: зачем GROUP BY? Если его убрать? |
| Автор: eXcile 26.5.2010, 05:39 | ||
попробуйте так
|
| Автор: Zloxa 26.5.2010, 09:08 | ||
если не использовать аггрегат для поля, не укзаанного в груп бай - будет возвращаться ЛЮБОЕ значение, вне зависимости от порядка сортировки. это ДОКУМЕНТИРОВАНО. |
| Автор: eXcile 26.5.2010, 11:30 |
| max() возвращает наибольшее значение из выборки а требуется я так понимаю массив всех значений, начиная с наибольшего. Distinct отфильтрует дубликаты поля id_subcategory и используя order by отсортирует значения id |
| Автор: Zloxa 26.5.2010, 12:08 |
| eXcile, на сколько я могу судить по http://dev.mysql.com/doc/refman/5.5/en/select.html, приведенный тобой запрос синтаксически не верен. По кр. мере я нигде не нашел, что select_expr может содержать ключевое слово disticnt и это будет значить то, что ты описал. Если ты мне укажешь соответствующее место в документации, буду тебе крайне признателен. А до тех пор все сказанное тобой я воспринимаю не иначе как пафосный чес ламо. Что же касается отсутствия сортировки.. я скорее поверю что ТС не правильно сформулировал свои ожидания, нежели что MySQL действительно забыл отсортировать выборку. Скорее всего ТС сортировал именно для того, чтобы получить последний по рангу id внутри категории, т.е. максимальный. |
| Автор: eXcile 26.5.2010, 13:27 |
| Zloxa, да в коде была ошибка, подредактировал. ЗЫ: свои восприятия в отношении другой личности, оставьте при себе |
| Автор: Zloxa 26.5.2010, 13:32 |
а теперь внимательно подумай что вернет тебе твой запрос.... особенно если id - pk если я оставлю при себе, как же другим ламо узнать что ты вводишь публику в заблуждение? Уж больно уверенным тоном ты туфту вещаешь. |
| Автор: Zloxa 27.5.2010, 06:55 |
Где ты видишь группировку по ID? садись, два. Этот запрос вернет уникальные значения id_subcategory для id_category='1' и только. Сортировка? Ты пробовал этот запрос? Не знаю на счет маськи, а оракл и ms sql руганутся на такой ордербай. eXcile, если ты не в теме, лучше спрашивай, а не учи |
| Автор: eXcile 27.5.2010, 07:44 | ||||
а возврат уникальных значений не есть выборка этого селекта? http://sql.itsoft.ru/select/
всегда считал это выборкой, естественно, пробовал запустить как на мускул так и на оракл |
| Автор: Zloxa 27.5.2010, 08:59 | ||||
балабол
MS:
Возврат уникальных значений это не тот результат, который ожидает ТС. видать ты действительно туговат, я сказал что ты абсолютно не корректно описал результат выборки а не то что ты это назвал выборкой. |