Что такое эквивалентный запрос Doctrine SQL для получения рекурсивного запроса по категориям элементов

В этом сообщении DRapp предоставил SQL-запрос для решения проблемы, предложенной Али. На практике Али спросил, как написать запрос, способный возвращать все строки из таблицы Category, относящиеся к строке в таблице Post, чтобы сделать то, что мы можем увидеть во всех каталогах веб-сайтов (eBay, Amazon и т. д.).

В нем говорилось, как запрос SQL, предложенный в решении DRapp , может быть написан с помощью Doctrine2?

Пожалуйста, избегайте использования QueryBuilder.

PS: Я использую MySQL.


person JeanValjean    schedule 26.05.2012    source источник


Ответы (1)


Я считаю, что невозможно написать такой запрос, как тот, который упоминается в вопросе, напрямую с помощью DQL или QueryBuilder. Однако есть возможность использовать Doctrine2 Native Query, который позвольте использовать для выполнения необработанного SQL.

Для полноты изложения ниже следует запрос от DRapp.

select
      P.ID,
      P.Post_Title,
      P.Category_ID,
      C.Category_Name as FirstCat,
      C.Parent,
      COALESCE( C2.Category_Name, ' ' ) as ParentCategory
   from
      Posts P
         JOIN Categories C
            on P.Category_ID = C.Category_ID
            LEFT JOIN Categories C2
               on C.Parent = C2.Category_ID
   where
      AnyFiltering
person JeanValjean    schedule 20.01.2013