表1
 
 id  a  b   c
 1   5  fasda  dfsd
 2   6   dfsdfd  fd
表 2
 a   d
5   dfds
6  dfdf
要的结果为
 id  a  b c  d
  1   5  fasda dfsd dfds
  2   6  dfsdfd  fd  dfdfSQL 怎么写呢

解决方案 »

  1.   

    select a.id,a.a,a.b,a.c,b.d
    from table1 a,table2 b
    where a.a = b.a
      

  2.   

    select * from 表1 a join 表2 b on a.a=b.a
      

  3.   

    -->生成测试数据
     
    declare @tb table([id] int,[a] int,[b] nvarchar(6),[c] nvarchar(4))
    Insert @tb
    select 1,5,N'fasda',N'dfsd' union all
    select 2,6,N'dfsdfd',N'fd'
    --Select * from @tbdeclare @tbB table([a] int,[d] nvarchar(4))
    Insert @tbB
    select 5,N'dfds' union all
    select 6,N'dfdf'
    --Select * from @tbBselect a.* ,b.[d]
    from @tb a ,@tbB b 
    where a.[a] =b.[a]
    /*
    id          a           b      c    d
    ----------- ----------- ------ ---- ----
    1           5           fasda  dfsd dfds
    2           6           dfsdfd fd   dfdf
    */
      

  4.   

    select a.*,b.d 
    from 表1 a,表2 b 
    where a.a = b.a
      

  5.   


    DECLARE @TA TABLE (ID INT ,A INT ,B VARCHAR(10),C VARCHAR(10))
    INSERT  @TA SELECT 1,5,'fasda','dfsd'
    UNION ALL SELECT  2,6,'dfsdfd','fd'
    DECLARE @TB TABLE (A INT ,D VARCHAR(10))
    INSERT   @TB SELECT  5,'dfds'
    UNION ALL SELECT 6,'dfdf'SELECT A.*,B.D FROM @TA A
    LEFT JOIN @TB B
      ON A.A=B.A
    --结果
    /*
    ID          A           B          C          D          
    ----------- ----------- ---------- ---------- ---------- 
    1           5           fasda      dfsd       dfds
    2           6           dfsdfd     fd         dfdf(所影响的行数为 2 行)
    */