邢台市二十二中中学:关于SQL Server 2000 的一道题

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 01:27:30
我的SQL Server 2000的成绩管理数据库里有三个表,分别为学生表(含有学号,姓名,性别三个字段),选课表(含有学号,课程号,成绩三个字段),课程表(含有课程号,课程名两个字段),上述各表都含有李东山同学的记录。
请问:要查找所有没有选李东山课程的学生姓名及其课程名信息,用SQL语句怎么写?
还有一个问题:
还是上面的数据库,
怎样用SQL语句查找选修人数最多的课程信息?

这是我自己的答案:(不知道对不对哦,供参考)
select 姓名,课程名
from 学生表,选课表,课程表
where not exist(
select *
from 选课表
where 课程号 in(select *
from 学生表,选课表,课程表
where 姓名=“李山东“and学生表.学号=选课表.学号 and 选课表.课程号=课程表.课程号
)

结束。

"上述各表都含有李东山同学的记录" 什么意思?

“所有没有选李东山课程的学生” 什么意思?

select 学生表.姓名,课程表.课程 from 学生表,课程表,选课表 where 学生表.学号=选课表.学号 and 选课表.课程号 not in (select 选课表.课程号 from 课程表,学生表 where 学生表.姓名 = '李东山'and 选课表.学号=学生表.学号)

直接写出来的,没有优化,供你参考

select 学生表.姓名,课程表.课程名
from 学生表,课程表
where 学生表.学号=选课表.学号 and 选课表.课程号=课程表.课程号 and 学生表.姓名 = '李东山'

Select 学生表.姓名,选课表.学号,选课表.课程号,课程表.课程名 From 学生表,选课表,课程表
Where 课程表 .课程号 Not In (
Select 选课表.课程号 From 选课表 Where 选课表.学号='李东山') And 学生表.学号=选课表.学号 And 选课表.课程号=课程表.课程号

你的问题主要涉及到多表连接的内容多看看就行了上面已经有答案了!