Суть задачи: выбрать значение из столбца `аaa` (или вообще выбрать поле), для которого значение из столбца `bbb` максимальное (минимальное). Видел несколько вариантов: [sql]SELECT `aaa` FROM `table_name` WHERE `bbb`=(SELECT MAX(`bbb`) FROM `table_name`)[/sql] или [sql]SELECT `aaa` FROM `table_name` ORDER BY `bbb` DESC LIMIT 1[/sql] Какой из них более оптимальный? Быстрый? первый мне не нравиться из-за того, что двойной запрос. второй - из-за того, что выбирается весь столбец bbb, сортируется, а потом отбрасывается лишнее. Есть ли еще какие либо варинты? Более оптимальные.
Да нет, я не говорю что тормозит. вопрос в том, какой из этих запросов более эффективный. мож это зависит от количества записей, мож еще от чего-то. может есть более эффективный алгоритм запроса такого типа
radistao да ну брось ты, запросы лётные... можешь потестить что быстрее и заодно поделиться результатами)))
http://dev.mysql.com/doc/refman/5.1/en/examples.html Если в таблице много записей, то первый вариант выглядит гораздо правильнее.
точно, нашел в русском мануале на mysql. Все предельно понятно и ясно. Как вывод первый работее быстрее, но не поддерживатся в старых версиях второй медленне и возвращает только одно значение, даже если их нескольно