问题
单项选择题
以下三题基于"学生-选课-课程"数据库中如下三个关系:S(S#,SNAME,SEX,AGE) SC(S#,C#,GRADE) C(C#,CNAME,TEACHER)
查询选修了课程号为’C2’的学生号和姓名,若用下列SQL的SELECT语句表达时,哪一个是错误的?
A.SELECT S.S#,SNAME FROM S WHERE S.S#=(SELECT SC.S# FROM SC WHERE C#=’C2’)
B.SELECT S.S#,SNAME FROM S,SC WHERE S.S#=SC.S# AND C#=’C2’
C.SELECT S.S#,SNAME FROM S,SC WHERE S.S#=SC.S# AND C#=’C2’ ORDER BY S.S#
D.SELECT S.S#,SNAME FROM S WHERE S.S# IN (SELECT SC.S# FROM SC WHERE C#=’C2’)
答案
参考答案:A
解析:在嵌套查询中,内层查询的结果有多个,不能用“=”做条件,而应使用“in”子句。