MYSQL中GROUP_CONCAT用法
//基本用法
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
通过 distinct可以去掉重复值,order by进行排序,separator指定分隔符,默认为逗号。
使用GROUP_CONCAT对吧。batch_name进行拼接数据
可以看出查询出来的值,经过分组后的batch_name里面的值出现重复,这是因为e表跟m,b表都是一对多的关系,这里关联了m表但是没有查m表中字段,是因为m表仅仅只是做条件查询的筛选条件
GROUP_CONCAT中可以使用distinct,对连接数据的字段进行去重
SELECT
e.id,
e.education_level AS educationLevel,
e.status,
e.updated AS adjustTime,
e.remark,
GROUP_CONCAT(distinct b.batch_name ) AS batchName
FROM
t_b_training_education e
LEFT JOIN t_b_training_education_major m ON m.education_id=e.id AND m.enable=1
Left JOIN t_b_training_exam_batch b ON b.ceritificate_id = e.id AND b.`status`=1
where
e.`enable`=1
and e.status=1
GROUP BY
b.ceritificate_id,
e.id,
e.education_level,
e.status,
e.updated,
e.remark
ORDER BY e.updated DESC
查询结果如下