Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 条令-按外国授权价值过滤_Php_Postgresql_Dql_Doctrine - Fatal编程技术网

Php 条令-按外国授权价值过滤

Php 条令-按外国授权价值过滤,php,postgresql,dql,doctrine,Php,Postgresql,Dql,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中的where中访问用户\u

我如何在原则中的何处使用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中的where中访问用户\u phonenumber\u count?

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


这是因为SQL的工作方式,而不是具体的原则-如果无法比较计算值,则必须使用having,或者可以使用WHERE COUNTsomething您需要使用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

不管怎样,但对我来说更重要的是我如何获得价值。但是谢谢你的留言重点是你不能在哪里访问它。不在SQL和DQL中。其中筛选发生在GROUP BY之前,聚合计数仅在GROUP BY之后创建,因此应用WHERE时不存在。你需要使用having:GROUP BY u.id,让用户\u phonenumber\u count>10,这是我要求的原则,但看起来不错。我会尽快尝试的,抱歉,错过了:-好吧,这就是你需要从条令的另一端出来的SQL类型:-条令DQL支持有。。。看见