MySQL语句 关联两表 合并重复列值 (一对多合并查询)
没用一对多前的查询语句效果如图:期望效果如图:可以看到把重复的数据合并成一行,实现一对多的效果。原先效果:SELECT u*,r.name AS rnameFROM sys_user uleft join sys_role r on u.pk_role=r.pk_roleWHERE1=1 and ifnull(u.jl_is_del,0)=0 and u.pk_corp='1'加...
·
没用一对多前的查询语句效果如图:
期望效果如图:
可以看到把重复的数据合并成一行,实现一对多的效果。
原先效果:
SELECT u*,r.name AS rname
FROM sys_user u left join sys_role r on u.pk_role=r.pk_role
WHERE 1=1 and ifnull(u.jl_is_del,0)=0 and u.pk_corp='1'
加了一对多语句后效果:
SELECT u*,GROUP_CONCAT(r.name) AS rname --将一列的多个值合并成一个
FROM sys_user u left join sys_role r on u.pk_role=r.pk_role
WHERE 1=1 and ifnull(u.jl_is_del,0)=0 and u.pk_corp='ba28c1ae446b4c67838a34e7b7441017'
GROUP BY u.pk_user --根据一个或多个列对结果集进行分组
具体用法:
select GROUP_CONCAT(A.title) as tablename from tmp A; --默认的逗号分隔
select GROUP_CONCAT(A.title SEPARATOR ' ') as tablename from tmp A; --用空格分隔更多推荐
已为社区贡献1条内容
所有评论(0)