SQL查询问题!急!在线跪求答案

来源:百度知道 编辑:UC知道 时间:2024/06/21 10:26:40
设有一关系数据库,它由三个关系构成,它们的模式是:
学生关系S,包括学号(sno),姓名(name),年龄(age)
选课关系SC,包括学号(sno),课程号(cno),成绩(grade)
课程关系C,包括课程号(cno),课程名(cname),任课老师(teacher)
要求用SQL完成下列查询
找出学了刘老师所教授的全部(注意是全部)课程的学生的姓名

根据以上问题,就是说必须找出这样的学生,他选择了刘老是所教的全部课程,当然也可能还选择了其他老师的课程。但是这样的学生不能选出,即只选了刘老师一门课程的学生。

请高手帮帮小弟,不胜感激
第三楼的高手,用了你的语句后报错:
服务器: 消息 512,级别 16,状态 1,行 1
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
但是把子查询前面的那个等于改为=ANY后,和一楼的程序没区别

--建立测试数据
declare @Stu table(SNO varchar(50), SNAME varchar(50), AGE int, SEX varchar(50), SDEPT varchar(50))
insert @Stu
select '0001', '张三' , 23, '男', '开发部' union all
select '0002', '李四' , 28, '男', '开发部' union all
select '0003', '王五' , 35, '女', '开发部'

declare @Course table(CNO varchar(50), CNAME varchar(50), TNAME varchar(50))
insert @Course
select 'C001', '语文' , '黄老师' union all
select 'C002', '数字' , '刘老师' union all
select 'C003', '英语' , '刘老师'

declare @StuCourse table(SNO varchar(50), CNO varchar(50), GRADE real)
insert @StuCourse
select '0001','C001', 88.5 union all
select '0001','C002', 83 union all
select '0001','C003', 95 union all
select '0002',