现有三张表
表A:学生ID、学生名
表B:课程ID、课程名
表C:学生ID、课程ID、成绩如果想输出下列值:
参加了某门课程的所有学生的学生名、课程名、成绩SQL语句该怎么写?用一句SQL语句能实现吗? 

解决方案 »

  1.   

    select a.学生名,b.课程名,c.成绩
    from a ,b,c
    where a.学生ID = c.学生ID and c.课程ID = b.课程ID and b.课程名 = '某门课程'
      

  2.   

    select
      a.学生名,b.课程名,c.成绩
    from
      a,b,c
    where
      a.学生ID=c.学生ID
    and
      b.课程ID=c.课程ID
    and 
      b.课程ID=xx
      

  3.   

    select
      a.学生名,b.课程名,c.成绩
    from
      a,b,c
    where
      a.学生ID=c.学生ID
    and
      b.课程ID=c.课程ID
    and 
      b.课程名='xx'
      

  4.   

    select a,学生名,b.课程名,c.成绩 from a join c on a.学生ID=c.学生ID join b on c.课程ID=b.课程ID where b.课程名='某门课程名'
      

  5.   

    select  a.学生名,b.课程名,c.成绩 from  a,b,c
    where  a.学生ID=c.学生ID and   b.课程ID=c.课程ID and   b.课程名='xx'
      

  6.   

    select a,学生名,b.课程名,c.成绩 
    from a 
    join c on a.学生ID=c.学生ID 
    join b on c.课程ID=b.课程ID 
    where b.课程名='某门课程名'
      

  7.   

    select * from 表C left join 表B on 表C.课程ID=表B.课程ID left join 表A on 表C.学生ID=表A.学生ID and 表B.课程名=''
    go
      

  8.   


    create proc p_lesson
    @lesson varchar(20)
    as
    select a.学生名,b.课程名,c.成绩
    from a,b,c
    where a.学生ID=C.学生ID and b.课程ID=c.课程ID and b.课程名=@lesson
    exec p_lesson
    @lesson='输入的课程名'
      

  9.   

    SELECT a.学生名, b.课程名, c.成绩
    FROM a INNER JOIN
          c ON a.id = c.id INNER JOIN
          b ON d.课程id = b.课程id
    WHERE (d.课程id = 'xx')