初学SQL SERVER 2000 有个问题请教一下:
表A学生的基本信息
学号 姓名 年龄  等等吧
001 张三  20
002 李四  21
另一张表放成绩表
学号  科目 分数 
001  语文  90 
001  数学  95  
002  语文  86
002  数学  87
现在我想列出一张表,内容是
学号  姓名  科目 分数 
001  张三  语文  90 
001  张三  数学  95  
002  李四  语文  86
002  李四  数学  87该如何建立查询呢?

解决方案 »

  1.   

    select A.学号,姓名,科目,分数
    from A join 成绩表 on A.学号=成绩表.学号
      

  2.   

    select a.姓名,b.*
    from 成绩表 a,学生的基本信息 b
    where a.学号 = b.学号
      

  3.   

    或者用:
    select 成绩表.学号,姓名,科目,分数
    from A right join 成绩表 on A.学号=成绩表.学号
      

  4.   


    表A学生的基本信息 
    学号   姓名   年龄     等等吧 
    001   张三     20 
    002   李四     21 
    另一张表放成绩表 
    学号     科目   分数   
    001     语文     90   
    001     数学     95     
    002     语文     86 
    002     数学     87 -----------------------
    select a.学号,姓名,科目,分数 from 表A a,表B b where a.学号=b.学号
      

  5.   

    declare @ta table(学号 varchar(4),姓名 varchar(8),年龄 int)
    insert @ta select '001','张三',20 
    insert @ta select '002','李四',21 
    declare @tb table(学号 varchar(4),科目 varchar(6),分数 int)
    insert @tb select '001','语文',90   
    insert @tb select '001','数学',95     
    insert @tb select '002','语文',86 
    insert @tb select '002','数学',87 select a.姓名,b.*
    from @ta a,@tb b
    where a.学号 = b.学号select a.姓名,b.*
    from @ta a
    full join @tb b  on a.学号 = b.学号
    select a.姓名,b.*
    from @ta a
    left join @tb b  on a.学号 = b.学号
    select a.姓名,b.*
    from @ta a
    right join @tb b  on a.学号 = b.学号
    /*
    姓名       学号   科目     分数          
    -------- ---- ------ ----------- 
    张三       001  语文     90
    张三       001  数学     95
    李四       002  语文     86
    李四       002  数学     87姓名       学号   科目     分数          
    -------- ---- ------ ----------- 
    张三       001  语文     90
    张三       001  数学     95
    李四       002  语文     86
    李四       002  数学     87姓名       学号   科目     分数          
    -------- ---- ------ ----------- 
    张三       001  语文     90
    张三       001  数学     95
    李四       002  语文     86
    李四       002  数学     87姓名       学号   科目     分数          
    -------- ---- ------ ----------- 
    张三       001  语文     90
    张三       001  数学     95
    李四       002  语文     86
    李四       002  数学     87
    */
      

  6.   

    declare @tb1 table (学号 varchar(10),姓名 varchar(10),年龄 int)
    insert into @tb1 select '001','张三',20
    insert into @tb1 select '002','李四',21declare @tb2 table (学号 varchar(10),科目 varchar(10),分数 int)
    insert into @tb2 select '001','语文',90
    insert into @tb2 select '001','数学',95
    insert into @tb2 select '002','语文',86
    insert into @tb2 select '002','数学',87select a.学号,a.姓名,b.科目,b.分数
    from @tb1 a join @tb2 b on a.学号=b.学号学号 姓名 科目 分数
    001 张三 语文 90
    001 张三 数学 95
    002 李四 语文 86
    002 李四 数学 87
      

  7.   

    create table A(学号 varchar(4),姓名 varchar(8),年龄 int)
    insert A select '001','张三',20 
    insert A select '002','李四',21 
    create table 成绩表(学号 varchar(4),科目 varchar(6),分数 int)
    insert 成绩表 select '001','语文',90   
    insert 成绩表 select '001','数学',95     
    insert 成绩表 select '002','语文',86 
    insert 成绩表 select '002','数学',87 select A.学号,姓名,科目,分数
    from A join 成绩表 on A.学号=成绩表.学号/*
    学号   姓名       科目     分数
    ---- -------- ------ -----------
    001  张三       语文     90
    001  张三       数学     95
    002  李四       语文     86
    002  李四       数学     87(4 row(s) affected)
    */drop table A,成绩表
      

  8.   

    我在asp 也可以这样写吗?
      

  9.   


    declare @t1 table(id varchar(50) , name varchar(50) , age int check( age >0)) 
    declare @t2 table(id varchar(50) ,opject varchar(50), er int check(er >=0))
    insert into @t1 values('001','张三',20)
    insert into @t1 values('002','李四',21)
    insert into @t2 values('001','语文',90)
    insert into @t2 values('001','数学',95)
    insert into @t2 values('002','语文',86)
    insert into @t2 values('002','数学',87)
    select x.id ,x.name, x1.opject , x1.er  from @t1 x inner join @t2 x1 on x.id=x1.id刚毕业请老鸟指教 -----菜菜鸟