Задавайте вопросы, мы ответим
Вы не зашли.
Есть 2 таблицы - opportunities и managers, связанных по manager_id:
Отредактированно Fenelon (07.01.2011 20:42:37)
Неактивен
Неактивен
Большое спасибо! А не могли бы вы вкратце пояснить запрос. Я не имею пока обширного опыта в SQL... Буду очень признателен!
Неактивен
Подзапросом (select manager_id, count(manager_id ) c from opportunities group by manager_id order by c desc limit 1) t выбираем одного manager_id, встречающегося наибольшее кол-во раз в таблице opportunities. Полученный результат называем таблицей t и объединяем с таблицей managers для получения имени.
http://dev.mysql.com/doc/refman/5.1/en/select.html
http://dev.mysql.com/doc/refman/5.1/en/join.html
Выполняйте запрос по частям, чтобы наглядно было видно логику работы запроса.
Неактивен
vasya написал:
select m.name, t.c from managers m join
(select manager_id, count(manager_id ) c from opportunities group by manager_id order by c desc limit 1) t on m.id=t.manager_id;
Не совсем ясно зачем здесь join. Неужели where будет выполняться медленнее?
Неактивен
Здесь по-моему проще не написать... Как Вы себе представляете запрос с WHERE?
До предложенного варианта, у меня был толстый и некрасивый:
Отредактированно Fenelon (11.01.2011 17:12:05)
Неактивен
Здесь по-моему проще не написать... Как Вы себе представляете запрос с WHERE?
Действительно, не заметил, что нужно ещё количество. Может тогда вот так, как вариант. Не берусь говорить об оптимальности, т.к. проверить не на чем. Хотя, наверное, ваш вариант всётаки лучше.
Неактивен