1

Doctrine のどこで Aggregate 関数の結果を使用するにはどうすればよいですか?

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

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にアクセスするにはどうすればよいですか?

4

2 に答える 2

0

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
于 2009-10-29T18:27:46.090 に答える
0

これをどのように行ったかの正確な詳細を思い出せませんが、「HAVING」を使用する必要があったことを覚えておいてください

これは、具体的な教義ではなく、SQL の動作方法によるものです - WHERE は計算された値を比較できません。

于 2009-10-29T12:54:33.867 に答える