问题 单项选择题

基于"学生-选课-课程"数据库中如下三个关系: 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”子句。

选择题
单项选择题