首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询所有的学生都学的课程号与课程名称(一些公共课,如英语、政治等),该怎么解决

2012-04-05 
查询所有的学生都学的课程号与课程名称(一些公共课,如英语、政治等)在学校教学数据库中有三个基本表:S(Sno,

查询所有的学生都学的课程号与课程名称(一些公共课,如英语、政治等)
在学校教学数据库中有三个基本表:
S(Sno,Sn,Age,Sex),其含义为:学生(学号,姓名,年龄,性别【M:男,F:女】

SC(Sno,Cno,Score),其含义为:选课(学号,课程号,成绩)
C(Cno,CnTeacher),其含义为:课程(课程号,课程名,任课老师)
其中加下划线的属性为主码,下面列出了一部分示例数据,注意:一个老师可以教多门课
程。
S 表
SnoSnAge
--------------------
S1Zhang19
S2Wang20
……
SC 表
SnoCnoScore
----------------------
S1C190
S1C281
S2C278
……
C 表
CnoCnTeacher
-------------------------------
C1DatabaseSun
C2MISSun
C3OSLiu
……
6、查询所有的学生都学的课程号与课程名称(一些公共课,如英语、政治等)。
这个查询语句怎么写,求高手指教。

[解决办法]

SQL code
SELECT C.Cno,C.CnFROM C LEFT JOIN SCON C.Cno = SC.Cno GROUP BY C.Cno,C.CnHAVING COUNT(1)=(SELECT COUNT(1) FROM S)
[解决办法]
SQL code
insert into sselect 'S1','Zhang',19 union allselect 'S2','Wang',20insert into scselect 'S1','C1',90 union all select 'S1','C2',81 union all select 'S2','C2',78insert into c  select 'C1','Database','Sun' union all select 'C2','MIS','Sun' union all select 'C3','OS','Liu'select cno,cn from c where cno not in( select cno from s,c    where not exists(select * from sc where cno=c.cno and sno=s.sno))/*cno    cn         ------ ---------- C2     MIS(所影响的行数为 1 行)*/ 

热点排行
Bad Request.