group by、group_concat()、if()

group by、group_concat()、if()


  1. 现有一培训课程表,表结构如下:
字段名 类型 长度 主键 备注
id varchar 32
trainName varchar 255 培训课程名称
insideTeacher varchar 255 内部讲师姓名
outsideTeacher varchar 255 外部讲师姓名
insideOrOutside varcher 2 讲师型(0:内部?讲师1:外部讲师)
  1. 表中有如下数据:

group by、group_concat()、if()_第1张图片

  1. 现在需要获取如下格式的数据:

    |trainName|trainTeacher|

  2. 思路:

  1. 需要根据trainName对数据进行分组;
  2. 使用group_concat()方法对分组数据进行拼接;
  3. 使用if()判断使用insideTeacher还是outsideTeacher进行拼接。
  1. 实施:
SELECT
	t.trainName,
	GROUP_CONCAT(
	IF
	( t.insideOrOutside = 0, t.insideTeacher, t.outsideTeacher )) as trainTeacher
FROM
	`trainteacher` t 
GROUP BY
	t.trainName
  1. 结果:
    group by、group_concat()、if()_第2张图片

你可能感兴趣的:(group by、group_concat()、if())