Yii2 DB построитель запросов, имеющий в где

Извините за мой английский. Я добавляю новое условие в мой запрос следующим образом:

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

Buth я получил ошибку:

General error: 1111 Invalid use of group function

Затем я прочитал, что должен использовать наличие в 3-й строке, но я не знаю, как поставить условие «иметь» в «где».

0

Решение

Для условия / фильтра, относящегося к функции агрегирования, вы должны использовать наличие, а не где

$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 вы можете также использовать filteHaving, если у вас есть http://www.yiiframework.com/doc-2.0/yii-db-query.html#filterHaving()-detail

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]