sql 三表联合查询

三个表分别为学生表student班级表subject成绩表score学生表(student)字段学号,姓名,年龄(SID,SName,nl)班级表(subject)字段学... 三个表 分别为 学生表 student 班级表 subject 成绩表 score
学生表(student) 字段 学号,姓名,年龄(SID,SName,nl)
班级表(subject) 字段 学号,姓名,班级(FID,FName,bj)
成绩表(score) 字段 姓名,课程,成绩(DName,kc,Dscore)

学生表(student)

学号,姓名,年龄(SID,SName,nl)

01 郑一 7
02 郑二 8
02 郑三 9

班级表(subject)

学号,姓名,班级(FID,FName,bj)

01 郑一 一年级
02 郑二 二年级
03 郑二 三年级

成绩表(score)

姓名,课程,成绩(DName,Dscore)

郑一 语文 100
郑一 数学 80
郑一 英语 70
郑二 语文 70
郑二 数学 80
郑二 英语 60

查询后表结构如下:
学号,姓名,年龄,班级,课程,成绩
01 郑一 7 一年级 语文 100
02 郑二 8 二年级 语文 70
02 郑三 9 三年级

望高手给个答案
我只要安学生表记录一条记录不分对应的记录有几条只返回一条,对应的没有记录反本身记录
结果如下:
学号,姓名,年龄,班级,课程,成绩
01 郑一 7 一年级 语文 100
02 郑二 8 二年级 语文 70
03 郑三 9 三年级
面不是这个的结果:
学号,姓名,年龄,班级,课程,成绩
01 郑一 7 一年级 语文 100
01 郑一 7 一年级 数学 80
01 郑一 7 一年级 英语 70
02 郑二 8 二年级 语文 70
02 郑二 8 二年级 数学 80
02 郑二 8 二年级 英语 60

select 学号,姓名,班级,课程,成绩
from 学生表
left join 班级表 on 班级表.学号=学生表.学号
left join 成绩表 on 成绩表.学号=学生表.学号
只要一条的话再加个条件啊
像你的补充就是科目都是语文,那么where 课程='语文'只能查到
学号,姓名,年龄,班级,课程,成绩
01 郑一 7 一年级 语文 100
02 郑二 8 二年级 语文 70
还有一条03 郑三 9 三年级查不到
展开
 我来答
Tosunk
2010-06-25 · TA获得超过436个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:346万
展开全部
select SID as '学号',SName as '姓名',nl as '年龄',bj as '班级',kc as '课程',Dscore as '成绩'
from Student,
left join subject on SID=FID
left join score on SName=DName

但是你的你的所有班级里不能有重名,否则会出错
或者在score表中加上学号字段
百度网友36cabda
2010-06-30 · TA获得超过298个赞
知道小有建树答主
回答量:493
采纳率:0%
帮助的人:320万
展开全部
select 学号,姓名,班级,课程,成绩
from 学生表
left join 班级表 on 班级表.学号=学生表.学号
left join 成绩表 on 成绩表.学号=学生表.学号
只要一条的话再加个条件啊
像你的补充就是科目都是语文,那么where 课程='语文'就好了
要查郑三的话,把where 课程='语文'去掉,这样
select 学号,姓名,班级,课程,成绩
from 学生表
left join 班级表 on 班级表.学号=学生表.学号
left join 成绩表 on 成绩表.学号=学生表.学号 and 成绩表.课程='语文'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jeason738
2010-06-25 · TA获得超过1716个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:273万
展开全部
select SID,SName,nl,bj,kc,Dscore from student left join subject
on student.SName=subject.FName left join score
on student.SName=score.DName
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hejinxiang2006
2010-06-25 · TA获得超过133个赞
知道答主
回答量:68
采纳率:0%
帮助的人:47.6万
展开全部
select SID,SName,nl,bj,kc,Dscore from student left join subject
on student.Sid=subject.Fid left join score
on student.SName=score.DName
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式