父子表关联sql语句请教

比如两张表,一张student(学生表),一张course(课程表)

student(学生表)

姓名
张三
李四

course(课程表)

姓名课程
张三语文
张三数学
张三英语
李四语文
李四数学
李四日语
李四计算机

写一个sql返回:

姓名课程
张三语文,数学,英语
李四语文,数学,日语,计算机

怎么写呢?

阅读 2.7k
3 个回答

student
image.png

course
image.png

sql
image.png

select s.姓名,group_concat(c.课程) as 课程
from student s 
  left join course c on s.姓名=c.姓名
group by s.姓名

这个明显是行转列问题。
可以使用 group_concat 函数实现。
如果注重性能,建议在程序里面做逻辑处理,不要单靠 一条sql。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题