Доступ к курсу "Query Builder" закрыт
Автор: Vasiliy Bulykin
В запросе происходит получение нескольких полей, а группировка по одному. Что логично — SQL говорит, что "An exception occurred while executing a query: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'symfony_sqlbuilder.t0_.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"
и лечить получается добавлением -->select('t.name')
но тогда и результат будет только по именам.
какие настройки в проекте нужно поменять, чтобы это заработало на "select *" ?
Автор: Дмитрий Ченгаев
Если нужен SQL запрос, вполне можно использовать примерно так
SELECT * FROM `user` GROUP BY roles;
Автор: Vasiliy Bulykin
Автор: Дмитрий Ченгаев
Попробуйте закомментировать getResult и посмотреть какой запрос формируется.
Вот так
return $this->createQueryBuilder('u')
->addGroupBy('u.roles')
->getQuery();
//->getResult();
Судя по ошибке идет попытка сделать Group by по колонке id. Эта колонка не аггрегируемая и по ней нельзя сделать group by, т.к. все ее значения по определению уникальны.
Поэтому нужно указать какую-то другую колонку. Например, я указал u.roles - колонка roles в таблице tables.
dql запрос получился
SELECT u FROM App\Entity\User u GROUP BY u.roles
Посмотрите какой запрос будет у вас.
Автор: Vasiliy Bulykin
"sql_mode=only_full_group_by" — это какая-то настройка самого мускула? ежель да, то где искать?
Автор: Дмитрий Ченгаев
Не сталкивался с этим раньше.
Вот, вроде бы есть рекомендации, как это сделать
https://stackoverflow.com/questions/23921117/disable-only-full-group-by
Автор: Vasiliy Bulykin
Автор: Vasiliy Bulykin
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти