Доброе время суток, появилась проблема у меня генерируется вот такой запрос:
SELECT `g`.`id` AS `groupId`,
`g`.`name` AS `groupName`,
GROUP_CONCAT(DISTINCT r.name SEPARATOR ",") AS ROLES
FROM
(SELECT `u`.`user` AS `user`,
`u`.`gid` AS `gid`,
`ru`.`id` AS `role`
FROM `users` AS `u`
LEFT JOIN `roles_users` AS `ru` ON `u`.`user` = ?
AND `ru`.`user` = `u`.`id`
UNION SELECT `u`.`user` AS `user`,
`u`.`gid` AS `gid`,
`rg`.`id` AS `role`
FROM `users` AS `u`
LEFT JOIN `roles_groups` AS `rg` ON `u`.`user` = ?
AND `rg`.`gid` = `u`.`gid`) AS `ur`
INNER JOIN `groups` AS `g` ON `g`.`id` = `ur`.`gid`
LEFT JOIN `roles` AS `r` ON `r`.`id` = `ur`.`role`
LIMIT 1
Но он завешается ошибок:
ER_MIX_OF_GROUP_FUNC_AND_FIELDS: In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'base.g.id'; this is incompatible with sql_mode=only_full_group_by
Проблема вроде как решается если я добавляю GROUP BY `g`.`id`, но я не понимаю зачем нужно делать группировку?
Cама структура таблиц такая
DBDesigner.
Заранее спасибо)