日期:2014-05-17  浏览次数:20535 次

子查询替换表连接的问题
请教各位大神,比如现在有两张表,一张学生表(Student),一张分数表(Score),分数表中关联学生id
如果使用表连接的话,实现方法如下
select stu.name as 姓名,sco.score as 分数
from Student stu
inner join Score sco
on stu.id = sco.stuid

如果使用子查询来实现的话,我试了一下,尝试方法如下
select name as 姓名,
(select score from Score where stuid=stu.id) as 分数 
from Student stu

结果提示错误,错误如下
【消息 512,级别 16,状态 1,第 1 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。】

请问各位大神,如果想要以子查询的方式替换表连接,显示学生表中的姓名和分数表中的分数,该如何实现?
子查询 表连接 select 连接

------解决方案--------------------
存在一个学生对应多个分数?