SQL:查询每门课程的课程名、选课学生姓名及其学号,选课人数

五个关系实例:
S(学生关系)
Sno
学号 Sn
姓名 Sex
性别 Age
年龄 Dept
系别
S1 赵亦 女 17 计算机
S2 钱尔 男 18 信息
S3 孙珊 女 20 信息
S4 李思 男 21 自动化
S5 周武 男 19 计算机
S6 吴丽 女 20 自动化
C(课程关系)
Cno
课程号 Cn
课程名 Ct
课时
C1 程序设计 60
C2 微机原理 80
C3 数字逻辑 60
C4 数据结构 80
C5 数据库原理 60
C6 编译原理 54
C7 操作系统 60

SC(选课关系)
Sno
学号 Cno
课程号 Score
成绩
S1 C1 90
S1 C2 85
S2 C4 70
S2 C5 57
S2 C6 80
S2 C7
S3 C1 75
S3 C2 70
S3 C4 85
S4 C1 93
S4 C2 85
S4 C3 83
S5 C2 89
TC(授课关系)
Tno
教师号 Cno
课程号
T1 C1
T1 C4
T2 C5
T3 C1
T3 C5
T4 C2
T4 C3
T5 C5
T5 C7

T(教师关系)
Tno
(教师号) tn
(姓名) Sex
(性别) Age
(年龄) Prof
(职称) Sal
(工资) Comm
(岗津) Dept
(系别)
T1 李力 男 47 教授 1500 3000 计算机
T2 王平 女 28 讲师 800 1200 信息
T3 刘伟 男 30 讲师 900 1200 计算机
T4 张雪 女 51 教授 1600 3000 自动化
T5 张兰 女 39 副教授 1300 2000 信息

我的学生数据库跟你的差不多,我就用我的这些表给你做了个

select c.Cno,s.Sname,s.Sno,选课人数 from Course c 

left join SC on c.cno=sc.cno 

left join student s on s.Sno=SC.Sno

left join (select c.cno, COUNT(s.Sno) 选课人数 from 

Course c left join SC on c.cno=sc.cno 

left join student s on s.Sno=SC.Sno 

group by c.Cno) as T ON T.Cno=c.Cno

追问

老师这样的语句 “left join SC on c.cno=sc.cno ”书上没有,您再修改一下程序吧

追答

左连接书上都没有,我表示这本书太挫了!我能力低帮不了你了!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-19
你连关系都没给,怎么查。。。追问

补充完整了

追答

一张表里显示?

相似回答