表1:分数表
字段:分数Id(主键),学生Id,科目Id,分数
表2:科目表
字段:科目Id(主键),科目名现已知学生Id,如何查处此学生的所有科目以及科目所对应的分数及:
科目     分数
JAVA    90
.NET    100
如何实现请高手指点。

解决方案 »

  1.   


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

  2.   

    select 科目,分数  from 表2 k 
    inner join 表1 f on k.科目Id=f.科目Id
    where 学生Id=xxx
      

  3.   


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

  4.   

    分数表 s  科目表 c
    select s.学生ID,c.科目名,a.分数
    from s,c
    where s.学生ID=“需要查询的学生ID” and s.科目ID=c.科目ID
      

  5.   

    select a.学生Id, b.科目名, a.分数
    from 分数表 a
    join 科目表 b on a.科目Id=b.科目Id
    where 学生Id=学生的id
    最基本的两表关联,通过科目id
      

  6.   

    还可以写成select a.学生id,
    b.科目名,
    a.分数
    from 分数表 a,科目表 b 
    where a.科目Id=b.科目Id and  学生Id=xxxxx某学生id
      

  7.   

    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,联机帮助文档上面写的很详细的~
      

  8.   


    select 科目,分数  from 表2 k 
    inner join 表1 f on k.科目Id=f.科目Id 
    where 学生Id=xxx
      

  9.   

    left join 先显示分数表中的所有记录,然后条件where 学生Id='某学生的Id' ,选出某个学生的信息。