求助,关于数据库联合查询的问题。

小弟是一个菜鸟,今天碰到这样一个题目。有这样三个表,学生信息表(学生编号,学生姓名,性别)课程表(课程编号,课程名称)成绩表(学生编号,课程编号,成绩)问,1。查出所有学... 小弟是一个菜鸟,今天碰到这样一个题目。
有这样三个表,学生信息表(学生编号,学生姓名,性别)
课程表(课程编号,课程名称)
成绩表(学生编号,课程编号,成绩)
问,1。查出所有学生姓名,课程为数学的成绩,按照成绩降序排列。
2。查出所有男生,女生英语成绩的平均数和最高分。

请各位大哥大姐,帮帮我,写出实现思路,还有,联合查询涉及到多个表时到底要怎么搞清思路,谢谢了。
我会给很多分的。
展开
 我来答
绯雨晨
2010-03-13 · TA获得超过141个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:121万
展开全部
设学生信息表表名:Student
编号:Sno 姓名:Sname 性别:gender

设课程表表名: Course
课程编号:Cno 课程名称:Cname

设成绩表表名:Results
学生编号:Rsno 课程编号:Rcno 成绩:resu

插入数据:

Stsdent:
1 张三 男
2 美女 女
3 小美 女
4 剑剑 男

Course:
1 数学
2 语文
3 英语

Results:
1 1 80
1 2 90
1 3 95
2 1 90
2 2 95
2 3 98
3 1 99
3 2 95
3 3 100
4 1 75
4 2 60
4 3 80

1. 查出所有学生姓名,课程为数学的成绩,按照成绩降序排列
select 学生姓名=a.Sname,课程名称=b.Cname,成绩=c.resu from Student a,Course b,Results c where c.Rsno=a.Sno and c.Rcno=b.Cno and b.Cno=1 order by c.resu desc

2.查出所有男生,女生英语成绩的平均数和最高分
select 男生英语平均成绩=(select avg(c.resu) from Student a,Course b,Results c where c.Rsno=a.Sno and c.Rcno=b.Cno and b.Cno=3 and a.gender='男'),女生英语平均成绩=(select avg(c.resu) from Student a,Course b,Results c where c.Rsno=a.Sno and c.Rcno=b.Cno and b.Cno=3 and a.gender='女'),男生英语最高成绩=(select max(c.resu) from Student a,Course b,Results c where c.Rsno=a.Sno and c.Rcno=b.Cno and b.Cno=3 and a.gender='男'),女生英语最高成绩=(select max(c.resu) from Student a,Course b,Results c where c.Rsno=a.Sno and c.Rcno=b.Cno and b.Cno=3 and a.gender='女')

思路就是要找到表的关联关系,比如这道题里面,学生表的学生编号和成绩表的学生编号是对应关系,课程表的课程编号和成绩表的课程编号是对应关系,那么只要2个数据一样,这2条数据就是对应的.查询的时候,这些关系作为查询的条件,查询出的结果就是你想要的结果.
切记,一定要找准对应关系,只要关系找对了,联合查询很简单.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式