select a.*,group_concat(f.name separator ',') as asd from dx2.admin_info as a left join dx2.admin_role as af on af.admin_id = a.admin_id left join dx2.role_info as f on af.role_id = f.role_id group by f.name
时间: 2024-04-07 18:33:00 浏览: 71
根据你的查询需求,你想要从表 "dx2.admin_info" 中选择所有列,并将 "dx2.role_info" 表中对应角色的名称使用逗号分隔起来作为一个名为 "asd" 的新列。
然而,根据你提供的查询语句,可能会导致错误,因为你在 GROUP BY 子句中只列出了 "f.name" 列,而没有包含其他非聚合列。这可能会触发之前提到的 "only_full_group_by" 错误。
为了解决这个问题,你可以修改查询,将需要的非聚合列都包含在 GROUP BY 子句中。以下是修改后的查询语句:
```sql
SELECT a.*, GROUP_CONCAT(f.name SEPARATOR ',') AS asd
FROM dx2.admin_info AS a
LEFT JOIN dx2.admin_role AS af ON af.admin_id = a.admin_id
LEFT JOIN dx2.role_info AS f ON af.role_id = f.role_id
GROUP BY a.admin_id, a.column1, a.column2, ... -- 列出除了聚合函数外的其他列
```
请注意,在 GROUP BY 子句中,除了 "f.name" 列外,还需要将 "dx2.admin_info" 表中的其他非聚合列(例如 "a.admin_id"、"a.column1"、"a.column2")都列出来。
这样修改后的查询应该可以成功执行,并返回你想要的结果。记得替换查询中的 "column1"、"column2" 等为实际的列名。
阅读全文