sql查询结果中有id相同的字段如何对查询结果进行操作将id相同的合并为一条数据

班级表class
classid, calssname,teacherid1
1 一班 1
1 一班 2
2 三班 1
教师表teacher
teacherid, teachername
1 zhangsan
2 lisi
select classid ,classname,teachername from class left join teacher on class.teacherid=teacher.teacherid
结果如下:
classid ,classname,teachername
1 一班 zhangsan
1 一班 lisi
2 三班 zhangsan
想要将classid相同的合并为一条,效果如下
classid ,classname,teachername
1 一班 zhangsan,lisi
2 三班 zhangsan
只能对两个表联合查询的结果进行合并操作,各位大神们拜托了,我的财富值都提问 了只剩真么多了,万分感谢

也不说你是用的什么数据库,sqlserver为例

建表

create table class
(classid int,
classname varchar(10),
teacherid int)


insert into class values (1,'一班',1)
insert into class values (1,'一班',2)
insert into class values (2,'三班',1)

create table teacher
(teacherid int,
teachername varchar(10))

insert into teacher values (1,'zhangsan')
insert into teacher values (2,'lisi')

执行

with tb as
(select a.classid,a.classname,b.teachername 
from class a left join teacher b 
on a.teacherid=b.teacherid)
select classid,classname,teachername=stuff((select ','+teachername from tb t where classid=tb.classid and classname=tb.classname for xml path('')), 1, 1, '')  
from tb  
group by classid,classname

结果截图

温馨提示:内容为网友见解,仅供参考
相似回答