表A
  A1       A2    A3   A4   A5 
 计算机1    台   奔四   2G   500G
 计算机2   台    奔四   2G   250G
 计算机3   台    奔四   2G   250G
 计算机4   台    奔四   2G   250G
表B
 A1        B1     
 计算机1   4999   
 计算机3   4500    查询后的表A1        A2    A3    A4    A5    B1
 计算机1   台    奔四   2G   500G   4999
 计算机2   台    奔四   2G   250G    0
 计算机3   台    奔四   2G   250G   4500
 计算机4   台    奔四   2G   250G    0
请大虾们解决一下
      

解决方案 »

  1.   

    select a.*,isnull(b.b1,0) as b1
    from a left join b
    on a.a1=b.a1
      

  2.   


    SELECT a.*,ISNULL(b.B1,0)
    FROM 表A a LEFT JOIN 表B b 
      ON a.A1=b.A1
      

  3.   

    oracle 下解决方案:select A1,A2,A3,A4,NVL(B1,0) from A,B where A.A1(+)=B.A1;
      

  4.   

    select * 
    from TableA as ta
    join TableB as tb
    on ta.A1=tb.A1
      

  5.   


    select A1,A2,A3,A4,A5,NVL(B1,0) from A,B where A.A1(+)=B.A1;
      

  6.   

    create table A(A1 varchar(20),A2 varchar(3),A3 varchar(8),A4 varchar(3),A5 varchar(6));
    go
    insert a select '计算机1','台','奔四','2G','500G'
    insert a select '计算机2','台','奔四','2G','250G'
    insert a select '计算机3','台','奔四','2G','250G'
    insert a select '计算机4','台','奔四','2G','250G'
    go
    create table B(A1 varchar(20),B1 int)
    go
    insert into b select '计算机1',4999 
    insert into b select '计算机3',4500
    go
    select a.*,isnull(b.b1,0) as b1
    from a left join b
    on a.a1=b.a1
    go
    drop table a,b;
    go
    /*结果
    A1                   A2   A3       A4   A5     b1
    -------------------- ---- -------- ---- ------ -----------
    计算机1                 台    奔四       2G   500G   4999
    计算机2                 台    奔四       2G   250G   0
    计算机3                 台    奔四       2G   250G   4500
    计算机4                 台    奔四       2G   250G   0(4 行受影响)*/
      

  7.   

    SELECT A.*,ISNULL(B.B1,0) B1
    FROM A LEFT JOIN B ON (A.A1=B.A1)
      

  8.   

    create table #A(A1 varchar(20),A2 varchar(3),A3 varchar(8),A4 varchar(3),A5 varchar(6));
    go
    insert #A select '计算机1','台','奔四','2G','500G'
    insert #A select '计算机2','台','奔四','2G','250G'
    insert #A select '计算机3','台','奔四','2G','250G'
    insert #A select '计算机4','台','奔四','2G','250G'
    go
    create table #B(A1 varchar(20),B1 int)
    go
    insert into #B select '计算机1',4999 
    insert into #B select '计算机3',4500
    goselect A.A1,A.A2,A.A3,A.A4,A.A5,isnull(B.B1,0) B1 from #A A left join #B B
    on A.A1=B.A1
      

  9.   

    请问6楼,B表中有两条记录与A表中一条记录对应时怎么求和后对应到A表中。
      

  10.   

    表A 
      A1      A2    A3  A4  A5 
    计算机1    台  奔四  2G  500G 
    计算机2  台    奔四  2G  250G 
    计算机3  台    奔四  2G  250G 
    计算机4  台    奔四  2G  250G 
    表B 
    A1        B1    
    计算机1  4999  
    计算机3  4500  
    计算机3  500   查询后的表 A1        A2    A3    A4    A5    B1 
    计算机1  台    奔四  2G  500G  4999 
    计算机2  台    奔四  2G  250G    0 
    计算机3  台    奔四  2G  250G  5000 
    计算机4  台    奔四  2G  250G    0  
      

  11.   

    select a.*,isnull(t.b1,0) as b1
    from a left join (select a1,sum(b1) as b1 from b group by a1) t
    on a.a1=t.a1
      

  12.   


    declare @t table(A1 varchar(20),A2 varchar(3),A3 varchar(8),A4 varchar(3),A5 varchar(6))
    insert @t select '计算机1','台','奔四','2G','500G'
    insert @t select '计算机2','台','奔四','2G','250G'
    insert @t select '计算机3','台','奔四','2G','250G'
    insert @t select '计算机4','台','奔四','2G','250G'declare @t2 table(A1 varchar(20),B1 int)
    insert into @t2 select '计算机1',4999 
    insert into @t2 select '计算机3',4500
    insert into @t2 select '计算机3',500select a.*,sum(isnull(b.b1,0))
    from @t a left join @t2 b
    on a.a1=b.a1
    group by a.a1,a.a2,a.a3,a.a4,a.a5/*
    A1                   A2   A3       A4   A5                 
    -------------------- ---- -------- ---- ------ ----------- 
    计算机1                 台    奔四       2G   500G   4999
    计算机2                 台    奔四       2G   250G   0
    计算机3                 台    奔四       2G   250G   5000
    计算机4                 台    奔四       2G   250G   0
    */
      

  13.   

    select a.* , inull(b.b1,0) b1 from a left join b on a.a1 = b.a1
      

  14.   

    create table A(A1 varchar(20),A2 varchar(3),A3 varchar(8),A4 varchar(3),A5 varchar(6));
    go
    insert a select '计算机1','台','奔四','2G','500G'
    insert a select '计算机2','台','奔四','2G','250G'
    insert a select '计算机3','台','奔四','2G','250G'
    insert a select '计算机4','台','奔四','2G','250G'
    go
    create table B(A1 varchar(20),B1 int)
    go
    insert into b select '计算机1',4999 
    insert into b select '计算机3',4500select a.* , isnull(b.b1,0) b1 from a left join b on a.a1 = b.a1drop table a,b/*
    A1                   A2   A3       A4   A5     b1          
    -------------------- ---- -------- ---- ------ ----------- 
    计算机1                 台    奔四       2G   500G   4999
    计算机2                 台    奔四       2G   250G   0
    计算机3                 台    奔四       2G   250G   4500
    计算机4                 台    奔四       2G   250G   0(所影响的行数为 4 行)
    */