子查询结果连接的问题。

哈哈哈啊002 2011-08-25 10:47:51
有两个表,一个教室,一个学生
classroom(id,name )
student(id,classroomid,name)
我想查询教室,但是,需要在结果集中,有一列把处于本教室的学生姓名连接一下,列出来。

希望结果是
教室ID 教室名 学生
1 1班 张三,李四,那五

求解。只想到建一个存储过程。
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
AcHerat 2011-08-25
  • 打赏
  • 举报
回复

select id,name,
学生=stuff((select distinct ','+name from student where t.id=classroomid for xml path('')),1,1,'')
from classroom t
怪众生太美丽 2011-08-25
  • 打赏
  • 举报
回复


--试试?
DECLARE @STR VARCHAR(MAX)
SELECT A.*,@STR=ISNULL(@STR+',','')+B.NAME
FROM classroom A LEFT JOIN student B
ON A.ID=B.classroomid
--
PRINT @STR
快溜 2011-08-25
  • 打赏
  • 举报
回复
select *,
学生=stuff((select ','+name from student where a.id=classroomid for xml path('')),1,1,'')
from classroom a
chuanzhang5687 2011-08-25
  • 打赏
  • 举报
回复
select 教室ID,教室名, 学生=stuff((select ','+学生 from tb t where 教室ID=tb.教室ID for xml path('')), 1, 1, '') 
from
(select c.id 教室ID,c.name 教室名,s.name 学生 from classroom c left join student s
on c.id = s.classroomid) tb
group by 教室ID,教室名

这样试试
  • 打赏
  • 举报
回复
一句的sql还真想不起来。
前台组织下?
稻草_木偶 2011-08-25
  • 打赏
  • 举报
回复
mark~学习下

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧