现有两表,求一查询语句,该如何解决
现有两表,求一查询语句
表1:分数表
字段:分数Id(主键),学生Id,科目Id,分数
表2:科目表
字段:科目Id(主键),科目名
现已知学生Id,如何查处此学生的所有科目以及科目所对应的分数及:
科目 分数
JAVA 90
.NET 100
如何实现请高手指点。。。。
------解决方案--------------------
表1:分数表
字段:分数Id(主键),学生Id,科目Id,分数
表2:科目表
字段:科目Id(主键),科目名
现已知学生Id,如何查处此学生的所有科目以及科目所对应的分数及:
科目 分数
JAVA 90
.NET 100
如何实现请高手指点。。。。
------解决方案--------------------
- SQL code
select a.学生Id, b.科目名, a.分数 from 分数表 a left join 科目表 b on a.科目Id=b.科目Id where 学生Id='某学生的Id'
------解决方案--------------------
select 科目,分数 from 表2 k
inner join 表1 f on k.科目Id=f.科目Id
where 学生Id=xxx
------解决方案--------------------
3楼正解
------解决方案--------------------
分数表 s 科目表 c
- SQL code
select s.学生ID,c.科目名,a.分数 from s,c where s.学生ID=“需要查询的学生ID” and s.科目ID=c.科目ID
------解决方案--------------------
- SQL code
select a.学生Id, b.科目名, a.分数 from 分数表 a join 科目表 b on a.科目Id=b.科目Id where 学生Id=学生的id
------解决方案--------------------
还可以写成
- SQL code
select a.学生id, b.科目名, a.分数 from 分数表 a,科目表 b where a.科目Id=b.科目Id and 学生Id=xxxxx某学生id
------解决方案--------------------
select a.学生Id, b.科目名, a.分数
from 分数表 a
left join 科目表 b on a.科目Id=b.科目Id
where 学生Id='某学生的Id' ]
left join:是返回左表中的所有行,包括与连接条件(on a.科目Id=b.科目Id )不匹配的行,如果b表中没有字段与之对应,则返回NULL,
联机帮助文档上面写的很详细的~
------解决方案--------------------
- SQL code
select 科目,分数 from 表2 k inner join 表1 f on k.科目Id=f.科目Id where 学生Id=xxx
------解决方案--------------------