mysql group_concat 获取一对多的数据

需求如果有主表a,副表b,a表一条记录对应b表多条记录。
现在要一次性取出a表中的记录,再附加a表每条记录对应b表里n条记录的集合。

这类需求可以采用group_concat来实现。

select a.*,GROUP_CONCAT(b.field separator '\r\t')
from table1 as a
left join table2 as b ON a.id=b.a_id
where .....
group by b.a_id;


group_concat语法

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '指定分隔符']) 

案例:

select a.id,a.mobile,a.disease_type,a.customer_status,a.update_time,GROUP_CONCAT(b.description separator '\r\t')
from signup as a
left join signup_follow as b ON a.id=b.signup_id
where a.disease_type in('肝癌','肝细胞癌') and a.status=1
group by b.signup_id;

猜你喜欢

转载自blog.51cto.com/phpme/2601059
今日推荐