1

我如何在 Doctrine 的 where 中使用 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?

4

2 回答 2

0

我不记得我是如何做到这一点的确切细节,但请记住它必须使用“HAVING”

这是因为 SQL 的工作方式,而不是具体的教义 - WHERE 无法比较计算值,您必须使用 have(或者您可以执行 WHERE COUNT(something) < something )

于 2009-10-29T12:54:33.867 回答
0

您需要使用 HAVING,而不是 WHERE。此外,您需要按实际在查询中的内容进行分组,在本例中为 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 回答