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

班级表classclassid,calssname,teacherid11一班11一班22三班1教师表teacherteacherid,teachername1zhang... 班级表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
只能对两个表联合查询的结果进行合并操作,各位大神们拜托了,我的财富值都提问 了只剩真么多了,万分感谢
展开
 我来答
badkano
2014-07-24 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部

也不说你是用的什么数据库,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

结果截图

zhl750501
2014-07-24 · TA获得超过650个赞
知道小有建树答主
回答量:698
采纳率:100%
帮助的人:453万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式