@gitdev

Ошибка 1055 в MySQL означает что выбираемые значения должны быть и в GROUP BY и в SELECT одновременно?

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'refer.p1_.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by


PHP code:
$bonuses = $this->createQueryBuilder('b')
            ->select('SUM(b.value) as sum, p.name')
            ->leftJoin('b.proposition', 'p')
            ->where('b.status = :status')
            ->setParameter('status', Bonus::STATUSES['APPROVED'])
            ->groupBy('p.user')
            ->getQuery()
            ->getResult();
  • Вопрос задан
  • 5174 просмотра
Решения вопроса 2
@Akina
Сетевой и системный админ, SQL-программист.
Любое поле/выражение выходного набора должно быть либо аргументом агрегатной функции, либо составной частью выражения группировки.

В данном случае Вы выбираете p.name, которого нет в ->groupBy('p.user') и которое не есть аргумент агрегатки. Добавьте его в выражение группировки, ->groupBy('p.user, p.name') (а если оно уникально в пределах одного p.user, то хватит и ->groupBy('p.name')).
Ответ написан
Комментировать
DevMan
@DevMan
или привести в соответствие, или отключить strict mode.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы