group-concat
列转行,将一列内容合并成一个字符串
-- 查询同时参加计算机和英语课程的学生的信息
-- 求出同时参加计算机和英语课程的学生学号
select stu_id, group_concat(cls_name order by cls_name) kc
from t_score
group by stu_id
having kc='英语,计算机';
-- 根据上述,查询学生信息
select s.*
from t_student s ,(select stu_id, group_concat(cls_name order by cls_name) kc
from t_score
group by stu_id
having kc='英语,计算机') t1
where t1.stu_id=s.id;
-- 验证
select * from t_score;
查询结果
concat
concat将多个字符串连接成一个字符串
区别
grounp_concat与concat的区别是,group_concat实现的是列转行,只能针对一列数据,而concat针对的是字符串,可以同时使用多行数据