Doctrine 2 QueryBuilder select()文の条件に基づいてカウントを取得する方法を知っている人はいますか?ここでDoctrine 2:選択項目のタイプ別選択項目
は、私がこれまで試したものだ...
私の最初の試みは)(当量)(カウントを試してみました。私が受け取ったエラーは、「期待される近いかっこが、等しい」ということです。
$qb->select($qb->expr()->count($qb->expr()->eq('t.id', '1')))
次はwith()を使ってcount()を試しました。私が受け取ったエラーには、「最大関数ネストレベルに達しました」と表示されます。
$qb->select($qb->expr()->count($qb->having('t.id', '1')))
次に、where()とeq()を使ってcount()を試しました。再度、「最大関数ネストレベルに達しました。」
$qb->select($qb->expr()->count($qb->where($qb->expr()->eq('t.id', '1'))))
次に、これらのバリエーションをin()を使用して試しました。彼らの両方が、 『(』中の場合
$qb->select($qb->expr()->count($qb->expr()->in('t.id', array(1))))
$qb->select($qb->expr()->count($qb->expr()->in('t.id', 1)))
()の例だから期待される構文エラー」を与える、私も同じ結果で、変数としておよびsetParameterを()を介して値を渡してみました。
ここでは、MySQLの私はQueryBuilderのコードにしようとしているものの等価です:あなたはDQLの事で滞在する必要がある場合を除き
SELECT
SUM(IF(type.id = 1, 1, 0)) AS 'fords',
SUM(IF(type.id = 2, 1, 0)) AS 'hondas'
FROM item
JOIN type ON item.type_id = type.id
はあなたが使用できることを、忘れてはいけませんネイティブクエリ時にはそれはより速く、よりエレガントです。 –