sql拼接查询,查询每个学生选了哪些课程。如何在姓名的后面查询拼接课程

问题,sql如何拼接

img


源码:
查询每个学生选了哪些课程。
SELECT DISTINCT a.name as '姓名' ,c.name as '课程' FROM student a
INNER JOIN selection b
on a.id=b.student_id
INNER JOIN course c
on b.course_id=c.id
要求:
如何让 人物 选中的课程 在一条数据上显示
想要的结果:

img

怎么在源码上改动?

SELECT DISTINCT a.name as '姓名' ,GROUP_CONCAT(c.name ) as '课程' FROM student a
INNER JOIN selection b
on a.id=b.student_id
INNER JOIN course c
on b.course_id=c.id
GROUP BY a.name

有帮助的话,请点采纳该答案~


SELECT DISTINCT 
    a.name as '姓名', 
    GROUP_CONCAT(c.name SEPARATOR ',') as '课程' 
FROM 
    student a
    INNER JOIN selection b on a.id=b.student_id
    INNER JOIN course c on b.course_id=c.id
GROUP BY 
    a.name;

这个是mysql行转列,直接改你的语句是不行的。