请教高手解答
CREATE TABLE member(
MID CHAR(10) PRIMARY KEY, --学号
MNAME CHAR(50) NOT NULL --姓名
)
CREATE TABLE F(
FID CHAR(10) PRIMARY KEY, --课程
FName CHAR(50) NOT NULL --课程名
)
CREATE TABLE Score(
SID INT PRIMARY KEY IDENTITY(1,1), --成绩记录号
FID CHAR(10) FOREIGN KEY(FID) REFERENCES F(FID), --课程号
MID CHAR(10) FOREIGN KEY(MID) REFERENCES member(MID), --学生号
Score INT NOT NULL --成绩
)
这是我建立的表的脚本,我要实现下面的查询
姓名 英语 数学 语文 历史
我下面这条SQL语句的意思就是 先选出来姓名,然后分别select4列,通过F001
,F002这些用来区分课程,sMID=mMID
SELECT 姓名=(SELECT m1.MName from member AS m1),
英语=(select Score from Score as s where s.FID='F001'AND s.MID=m.MID)
--数学=(select Score from Score AS s where s.FID='F002')
--语文=(select Score from Score AS s where s.FID='F003' WHERE member.MID=s.SID),
--历史=(select Score from Score AS s where s.FID='F004' WHERE member.MID=s.SID)
FROM Score AS s,member AS m,F AS f
但是执行的时候老是提示
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
我思路上看不出来问题啊,但是这个问题折腾了好久,自学真心痛苦啊。请高人能按着我的思路解答下,应为有更容易的实现这个的方法,但是我还是想知道我自己的思路错在那里了,谢谢