日期:2014-05-18  浏览次数:20496 次

现有两表,求一查询语句
表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

------解决方案--------------------
探讨
引用:


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


谢谢您,可以帮我解释一下吗。我SQL很菜啊。呵呵