子查询返回多个值该怎么解决!??!

渃水 2013-03-10 05:03:13
比如说有这么个情况:有以下三个表:
得分表:
试卷号(对应每张卷子得分),各题得分(多个字段,记录各道题目得分)
1 98(举例,用一个值)
2 80
3 88
试卷表:
试卷号,学号(参加考试的学生),各题题号(多个字段,记录各道题目)
1 0001
2 0002
3 0001
学生表:
学号,姓名……
0001 小红
0002 小白
每个学生可以参加多次考试,现在想要搜索姓名为XX的学生成绩,sql语句应该怎么写?
想要实现搜索‘小红’,结果为: 98 88


用嵌套查询的话在where条件里会返回多个值,编译错误!

最后一点分了,都发出去了,大家帮帮忙!!!

...全文
1116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
快溜 2013-03-11
  • 打赏
  • 举报
回复
select c.得分 from 学生表 a,试卷表 b,得分表 c where a.学号=b.学号 and b.试卷号=c.试卷号 and a.姓名='XX'
渃水 2013-03-11
  • 打赏
  • 举报
回复
引用 3 楼 ssp2009 的回复:
select c.得分 from 学生表 a,试卷表 b,得分表 c where a.学号=b.学号 and b.试卷号=c.试卷号 and a.姓名='XX'
谢谢你了!!
渃水 2013-03-10
  • 打赏
  • 举报
回复
引用 1 楼 hjywyj 的回复:
SQL code?1select 姓名,[分数]=stuff((select ','+rtrim(各题得分) from 得分表 a join 试卷表 b on a.试卷号=b.试卷号 where b.学号=x.学号 for xml path('')),1,1,'') from 学生表 x where 姓名='小红'
可以稍微解释一下吗?新手,看不太懂!
  • 打赏
  • 举报
回复
select 姓名,[分数]=stuff((select ','+rtrim(各题得分) from 得分表 a join 试卷表 b on a.试卷号=b.试卷号 where b.学号=x.学号 for xml path('')),1,1,'') from 学生表 x where 姓名='小红'

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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