Yii2 db查询构建器进入哪里

时间:2018-02-12 09:45:18

标签: php mysql yii2 having yii2-basic-app

抱歉我的英文。我在我的查询中添加了新条件,如下所示:

$query->andWhere(['or',
            ["<", "o.score", $score_operator],
            ["<", "d.score", $score_delivery],
            ["<", "SUM(sd.score)/count(DISTINCT sd.id)",$score_dishes]]);

但是我得到了错误:

General error: 1111 Invalid use of group function

然后我读到我必须使用三维行,但我不知道如何将“拥有”放在“where”条件下。

1 个答案:

答案 0 :(得分:1)

对于与聚合函数相关的条件/过滤器,您应该使用having而不是where

$query->having("SUM(sd.score)/count(DISTINCT sd.id) < " .$score_dishes);

在表行上工作,对选定的结果行有效。 http://www.yiiframework.com/doc-2.0/yii-db-query.html#having()-detail

从2.0.11开始,如果你有http://www.yiiframework.com/doc-2.0/yii-db-query.html#filterHaving()-detail

,你也可以使用filteHaving