有2个表
一个student表
有ID name两个字段
1 张三
2 李四
一个class表
studentID classname
1 语文
1 数学
2 英语
2 生物最后要查出student表中每个学生对应的课程
ID name classname
1 张三 语文,数学
2 李四 英语,生物这个在存储过程中怎么写啊
一个student表
有ID name两个字段
1 张三
2 李四
一个class表
studentID classname
1 语文
1 数学
2 英语
2 生物最后要查出student表中每个学生对应的课程
ID name classname
1 张三 语文,数学
2 李四 英语,生物这个在存储过程中怎么写啊
这样应该就可以啦,你试试看
a.id
,a.name
,classname=stuff((SELECT ','+classname FROM class b WHERE a.id=b.studentid for xml path('')),1,1,'')
from student a
if not object_id(N'Tempdb..#student') is null
drop table #student
Go
Create table #student([ID] int,[name] nvarchar(22))
Insert #student
select 1,N'张三' union all
select 2,N'李四'
GO
if not object_id(N'Tempdb..#class') is null
drop table #class
Go
Create table #class([studentID] int,[classname] nvarchar(22))
Insert #class
select 1,N'语文' union all
select 1,N'数学' union all
select 2,N'英语' union all
select 2,N'生物'
Go
--测试数据结束
SELECT ID ,
name ,
STUFF(( SELECT ',' + classname
FROM #class
WHERE studentID = #student.ID
FOR
XML PATH('')
), 1, 1, '') AS classname
FROM #student;