抱歉我的英文。我在我的查询中添加了新条件,如下所示:
$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”条件下。
答案 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