![]() |
#2
provoke2008-05-31 00:03
select stu.stuid as 学号,stuname as 姓名,clsname as 班级,couname as 课程,score as 分数,teaname as 任课教师
from 教师表 as tea,班级表 as cla,学生表 as stu,课程表 as cou,排课计划表 as pla,成绩表 as sco where sco.stuid=stu.stuid and sco.planid=pla.planid and pla.classid=cla.clsid and pla.teaid=tea.teaid and pla.couid=cou.couid and stu.clsid=cla.clsid 学号 姓名 班级 课程 分数 任课教师 ---- ------ ------ ---------- ----------- ------ ST1 学生1 班级1 课程1 60 教师1 ST1 学生1 班级1 课程2 65 教师2 ST1 学生1 班级1 课程3 70 教师3 ST2 学生2 班级2 课程1 75 教师1 ST2 学生2 班级2 课程2 80 教师2 ST2 学生2 班级2 课程3 85 教师3 ST3 学生3 班级3 课程1 90 教师1 ST3 学生3 班级3 课程2 95 教师2 ST3 学生3 班级3 课程3 100 教师3 3个班级,每个班1个学生,共3个学生; 3名教师,每名教师只教授1门课程; 3门课程,每门课程只由1名教师授课; 每名教师分别教3个班同一门课程,共9条排课计划; 所以,每个学生3门课程,共9条成绩记录。 班级表 clsid clsname ----- ------- CL1 班级1 CL2 班级2 CL3 班级3 学生表 stuid stuname clsid ----- ------- ----- ST1 学生1 CL1 ST2 学生2 CL2 ST3 学生3 CL3 教师表 teaid teaname ----- ------- te1 教师1 te2 教师2 te3 教师3 课程表 couid couname ----- ---------- CO1 课程1 CO2 课程2 CO3 课程3 排课计划表 planid classid teaid couid ------ ------- ----- ----- PL1 CL1 TE1 CO1 PL2 CL1 TE2 CO2 PL3 CL1 TE3 CO3 PL4 CL2 TE1 CO1 PL5 CL2 TE2 CO2 PL6 CL2 TE3 CO3 PL7 CL3 TE1 CO1 PL8 CL3 TE2 CO2 PL9 CL3 TE3 CO3 成绩表 scorid stuid planid score ------ ----- ------ ----------- SC1 ST1 PL1 60 SC2 ST1 PL2 65 SC3 ST1 PL3 70 SC4 ST2 PL4 75 SC5 ST2 PL5 80 SC6 ST2 PL6 85 SC7 ST3 PL7 90 SC8 ST3 PL8 95 SC9 ST3 PL9 100 |
一共6个表,希望有好心人,慢慢看看,给个解决方法。谢谢了。我尽量写得明了……
教师表:
teaid (主键)| teaname
班级表:
clsid (主键) | clsname
学生表:
stuid (主键)| stuname | clsid(与班级表外键关联)
课程表:
couid (主键)| couname
排课计划表:(==就是哪个教师教哪个班的哪个课程==)
planid (主键)| classid (与班级表外键关联)| teaid (与教师表外键关联)| couid(与课程表外键关联)
成绩表:
scorid (主键)| stuid(与学生表外键关联) | planid(与排课计划表外键关联) | score(成绩,分数)
数据表的结构如上,应该说清楚了。我的问题是:现在要查看学生的成绩信息,要求显示学生的学号、姓名、班级、每一课程的名称、分数、任课教师!我觉得太复杂了。怎么也想不怎么写语句。所以,来这里求救了。谢谢大家,谢谢细心人!