在数据库中有一个学生信息表(student),一个成绩表(score),一个课程表(course)
我现在想进行如下操作:
1、做查询,显示四列:姓名,学号,课程名称,成绩,2、 课程表中有几个数据:数学,语文,英语。
    成绩表中有所有学生数学的成绩,其他课程成绩的没有(等待添加)。
    学生表中有所有学生的相关信息3、做查询时,前三列一定要显示内容,第四列(成绩)有数据的话就显示数据,没
   数据的就显示空。
以上要怎么写查询语句

解决方案 »

  1.   

    表之间关联没有表述明白,假设学生表里有学生id studentid与score表里的sdid关联,
    score里有subid与course表里的id关联
    select student.姓名,student.学号,course.课程名称,isnull(cast (score.成绩 as varchar(20)),'') 成绩 from 
    student inner join score
    on student.studentid=score.sdid
    inner join course
    on score.subid=course.id
      

  2.   

    构造的一些数据
    create table course
    (
    id int,
    课程名称 varchar(255)
    )
    insert into course 
    select 1,'数学' union all 
    select 2,'语文' union all 
    select 3,'英语'
    create table student
    (
    studentid int,
    姓名 varchar(255),
    学号 varchar(10)
    )
    insert into student 
    select 1,'张三','001' union all 
    select 2,'李四','002'
    create table score
    (
    sdid int,
    成绩 int,
    subid int
    )
    insert into score
    select 1,80,1 union all
    select 1,90,2 union all
    select 1,60,3 union all
    select 2,70,1 select b.姓名,b.学号,c.课程名称,isnull(cast(d.成绩 as varchar),'') 成绩
    from 
    (
    select student.studentid,course.id from student cross join course
    ) a inner join student b on a.studentid=b.studentid
    inner join course c on a.id=c.id
    left outer join score d on a.studentid=d.sdid and a.id=d.subid
    --结果
    姓名                                                                                                                                                                                                                                                              学号         课程名称                                                                                                                                                                                                                                                            成绩
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------
    张三                                                                                                                                                                                                                                                              001        数学                                                                                                                                                                                                                                                              80
    张三                                                                                                                                                                                                                                                              001        语文                                                                                                                                                                                                                                                              90
    张三                                                                                                                                                                                                                                                              001        英语                                                                                                                                                                                                                                                              60
    李四                                                                                                                                                                                                                                                              002        数学                                                                                                                                                                                                                                                              70
    李四                                                                                                                                                                                                                                                              002        语文                                                                                                                                                                                                                                                              
    李四                                                                                                                                                                                                                                                              002        英语                                                                                                                                                                                                                                                              (6 行受影响)
      

  3.   

    hrb2008()   谢谢你的帮助,我自己也是这样做的
    可是我接触的表不止这么几个 ,我写的那个连接语句 可以打印一张A4,
    哪位大哥还有其他方法啊