2011-10-18 51 views
1

十分なベッドがある私のデータベースからホテルを取得しようとしています(ユーザーはゲスト数パラメータを指定しています)。クエリは次のようになります。Doctrine2 SUMを使ったQueryBuilderサブクエリ?

上記のクエリには、where句にサブクエリが含まれています。私はdoctrineのQueryBuilderのドキュメントを読んできましたが、QBでサブクエリを作成する方法はわかりません。

私が今持っているすべては、次のとおりです。

$qb = $this->getDoctrine()->getEntityManager()->createQueryBuilder() 
    ->select('h') 
    ->from('AAAHotelsBundle:Hotel', 'h') 
    ->where(.........???...........); 

すべてのアイデアは、次に何をすべきか?

もちろん、私は問題を単純化しました(クエリ自体はずっと複雑です)。私はSymfony2を使用します。

答えて

0

私はこのDQLはDQLが私の場合は解決策ではありませんあなた

SELECT h, SUM(r.guestCount * r.count) as TSUM FROM Hotel h JOIN h.room r 
WHERE TSUM >= :questCount 
2

役立つと思います。私は本当にQueryBuilderを使う必要があります。 私はasked the same question on Google Groupsです。解決策は次のとおりです。

$qb = $this->getDoctrine()->getEntityManager()->createQueryBuilder() 
    ->select('h') 
    ->from('AAAHotelsBundle:Hotel', 'h') 
    ->join('Room', 'r') 
    ->groupBy('h') 
    ->having('SUM(r.guestCount * r.count) >= :guestCount') 
    ->setParameter("guestCount", $guestCount); 
関連する問題