COUNT(), LEFT JOIN, GROUP BY - проблема сортировки второй таблицы

webxtor

Новичок
COUNT(), LEFT JOIN, GROUP BY - проблема сортировки второй таблицы по MAX()

Есть 2 таблицы:

projects: id, name
releases: id, project_id, version, date

Как мне одним запросом (и без вложенных запросов) взять все проекты, количество релизов в них, максимальную версию релиза и его дату?

Запрос:

Код:
SELECT p.id, p.name, count( r.id ) AS r_num, max( r.version ) AS version, date
FROM projects  p
LEFT JOIN releases  r ON ( r.project_id = p.id ) 
GROUP BY p.id
Выдаст все, что нужно, только вот date будет ясное дело не максимальной версии, а первой добавленной

Неужели никак нельзя указать упорядочивание второй таблицы? :confused:
 

webxtor

Новичок
Хм.... я все доки mysql пересмотрел, простых решений не нашел. А тут заметил, что отвечают постоянно без проблем на тривиальные вопросы, которые 10 миллионов раз обсуждались, и не жалуются, и решил вот спросить, просмотрев нету ли чего похожего в первой странице форума (их почему-то всего 3 уже).. не нашел... поищем, если такие жадные...
 

zerkms

TDD infected
Команда форума
поищем, если такие жадные
нет мы не жадные, мы наоборот тратим своё время на написание поста, дабы вы, ленивые, научились пользоваться поиском (см. овладели ценным навыком)
 

webxtor

Новичок
Навык он безусловно ценный! Но что-то я таки не нашел никаких решений, позволяющих это сделать без вложенных запросов. Меня поражает сам факт - неужели такую казалось бы очевидно необходимую операцию нельзя выполнить так просто?

Скажем был бы я разработчиком нечта подобного, я бы позволил делать так

Код:
SELECT p.id, p.name, count( r.id ) AS r_num, r.version AS version, date
FROM projects  p
LEFT JOIN releases  r ON ( r.project_id = p.id )  [b]JOINORDER BY r.version DESC[/b]
GROUP BY p.id
Что позволило бы указывать, в каком порядке присоединять записи второй таблицы... неужели ничего подобного нельзя сделать?
 

webxtor

Новичок
Когда быстро что-то находишь, знаешь что ищешь!

Я как никто другой знаю, что ищу, и поскольку умею опыт нахождения того, что мне надо, уже конечно пересматривал тот пост и ему подобные, так как они действительно содержат некие намеки на именно мои вопросы.

Но это было не то, что мне нужно, так как меня интересовал ответ на 2 следущих вопроса:

-неужели это нельзя сделать БЕЗ подзапросов, с позволения сказать просто и элегантно

-неужели самый элегантный способ реализации этого запроса без вложенных запросов осуществляется только с использованием пока еще загадочной для меня операции CONCAT (http://dev.mysql.com/doc/refman/4.1/en/example-maximum-column-group-row.html)?


Заранее спасибо за именно те ответы, которые мне нужны!
 

zerkms

TDD infected
Команда форума
webxtor
можно сделать без подзапросов - с помощью временной таблицы
 
Сверху