当前位置: 代码迷 >> ASP.NET >> 现有两表,求一查询语句,该如何解决
  详细解决方案

现有两表,求一查询语句,该如何解决

热度:1797   发布时间:2013-02-25 00:00:00.0
现有两表,求一查询语句
表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.科目Idwhere 学生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,cwhere s.学生ID=“需要查询的学生ID” and s.科目ID=c.科目ID
------解决方案--------------------------------------------------------
SQL code
select a.学生Id, b.科目名, a.分数from 分数表 ajoin 科目表 b on a.科目Id=b.科目Idwhere 学生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
------解决方案--------------------------------------------------------
探讨
引用:


SQL codeselect a.学生Id, b.科目名, a.分数
from 分数表 a
left join 科目表 b on a.科目Id=b.科目Id
where 学生Id='某学生的Id'


谢谢您,可以帮我解释一下吗。我SQL很菜啊。呵呵
  相关解决方案