Такая практика идёт повсеместно в CMS. В Битриксе один раз видел запрос, который полтора часа выполнялся... Если вам не нравится такой подход, то надо либо пилить своё, либо оптимизировать чужое.
Александр Борисович: По сути да, это отлично вписывается в MVC-концепцию и позволяет явно использовать все связи между моделями. Если хотите маленький и аккуратный код, то нужны маленькие и простые проекты, к которым подобные запросы можно описать руками. Фактически, используется ORM подход везде, где время работы запроса остаётся приемлемым. Для немногочисленных исключений уже пишут всевозможные оптимизации, варианты коих зависят от "извращённости" мозгов программиста и проектировщика БД.
Добавил ссылочку картинке для всяких Викторов, которые не могут догадаться открыть полную картинку)
Копипаст кода мне не нравится. Он большой, мне кажется так нагляднее.
Александр Борисович: так не в открывании дело. Открыть то догадался. А что, если бы кто-то хотел показать, как из этой каши сделать что-то более удобо-читаемое? Или просто хотя бы сделать сравнение с чем-то существующим? Забить или ручками все перепечатывать?