0

この投稿では、DRappは、 Aliによって提案された問題を解決するためのSQLクエリを提供しました。実際には、Aliは、すべてのカタログベースのWebサイト(eBay、Amazonなど)で確認できることを実行するために、 Postテーブルの行に関連するテーブルCategoryからすべての行を返すことができるクエリを作成する方法を尋ねました。 。)。

これは、DRappのソリューションで提案されたSQLクエリをDoctrine2でどのように記述できるかを示しています。

QueryBuilderの使用は避けてください。

PS:私はMySQLを使用しています。

4

1 に答える 1

0

DQLやQueryBuilderを直接使って、質問で述べたようなクエリを書くことはできないと思います。ただし、1つの可能性は、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
于 2013-01-20T10:24:20.007 に答える