MySQL语句 关联两表 合并重复列值 (一对多合并查询)

xiaoxiao2021-02-28  54

没用一对多前的查询语句效果如图:

期望效果如图:

可以看到把重复的数据合并成一行,实现一对多的效果。

原先效果:

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;   --用空格分隔
转载请注明原文地址: https://www.6miu.com/read-2624310.html

最新回复(0)