質問

DoctrineのどこでAgregate関数の結果を使用できますか?

たとえば、ばかげた数のユーザーを知りたい。

SELECT  u.name, COUNT(p.id) AS users_phonenumber_count
FROM    users u

    INNER JOIN phonenumbers p ON p.user_id = u.id
WHERE
    users_phonenumber_count > 10
GROUP BY
    u.id

Dqlのどこで users_phonenumber_count にアクセスできますか?

役に立ちましたか?

解決

WHEREではなくHAVINGを使用する必要があります。また、クエリ内に実際にある何か、この場合はu.nameでグループ化する必要があります。 u.nameが一意であると仮定-そうでない場合は、u.idとu.nameの両方でグループ化する必要があります。

SELECT  u.name, COUNT(*) AS users_phonenumber_count
FROM    users u

    INNER JOIN phonenumbers p ON p.user_id = u.id
GROUP BY
    u.name
HAVING
    count(*) > 10

他のヒント

これを行った方法の正確な詳細は思い出せませんが、<!> quot; HAVING <!> quot;

を使用しなければならなかったことを思い出してください

これはSQLの動作方法のためであり、特に教義ではありません-WHEREは計算された値を比較できません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top