用于获取项目类别的递归查询的等效Doctrine SQL查询是什么

时间:2012-05-26 12:33:17

标签: mysql sql doctrine-orm

this post中, DRapp 提供了一个SQL查询,用于解决 Ali 提出的问题。在实践中,Ali询问如何编写一个能够返回 Post 表中与行相关的表 Category 中的所有行的查询,以便尽我们所能。在所有基于目录的网站(eBay,亚马逊等)中查看。

这说明 DRapp解决方案 中提出的SQL查询如何用Doctrine2 编写?

使用 QueryBuilder

PS:我使用MySQL。

1 个答案:

答案 0 :(得分:0)

我认为通过直接使用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