-1

次のクエリを作成するために、リポジトリで symfony2 クエリ ビルダーを使用したいと考えています。

SELECT c.name,
       (
         SELECT COUNT(1)
         FROM product
         WHERE product.cat_id = c.id
       ) products
FROM category c
ORDER BY category.id ASC

この目的でクエリ ビルダーを使用できますか? また、クエリ ビルダーを構築するにはどうすればよいですか? ありがとう

4

1 に答える 1

1

ここでサブクエリが必要だとは思わない。countgroup byで簡単に実現できます。

との間の正しい関係を定義していると仮定するとProductCatergoryこの DQL クエリは機能するはずです。

これをカテゴリリポジトリに含めます

$categories = $this->createQueryBuilder('c')
                    ->select('c.name,count(p.id)')
                    ->leftJoin('c.products','p')
                    ->groupBy('c.id')
                    ->getQuery()
                    ->getResult();
于 2013-10-03T09:19:54.980 に答える