求教高手 我需要一sql语言解决以下问题
有2个库 a库(id(int) text(varchar)) b库(id(int) text1(varchar))
现在要并成一个c库 就是简单的合并 
比如 a库                 b库
     id   text           id   text1
     1    a              1     b
     1    aa             1     bb
     1    aaa
合出来需要
    c库
    id   text  text1
     1    a     b
     1    aa    bb
     1    aaa   null
小弟我用select.....into 语句合出来的库在做笛卡尔集 请教高手应该如何写 非常感谢

解决方案 »

  1.   

    楼主是不是想要这样的结果。 
    create table a库(id int, [text] varchar(20))
    create table b库(id int, text1 varchar(20))
    insert into a库 values(1,'a')
    insert into a库 values(1,'aa')
    insert into a库 values(1,'aaa')insert into b库 values(1,'b')
    insert into b库 values(1,'bb')
    create table c库(id int ,text varchar(20),text1 varchar(30))
    insert into  c库(id,text,text1) 
    select a.id,a.text,b.text1
    from a库 a left join b库 b on len(a.text)=len(b.text1)
    select * from c库
    id          text                 text1                          
    ----------- -------------------- ------------------------------ 
    1           a                    b
    1           aa                   bb
    1           aaa                  NULL(所影响的行数为 3 行)
      

  2.   

    对不起..我的意思是2个表的合并
    先谢谢2楼的朋友回复
    因为我列出的数据不是只这么一点只是一小部分
    2楼的楼主是否在帮小第
     a库                 b库
         id   text           id   text1
         1    a              1     b
         1    aa             1     bb
         1    aaa
         2     c             3     d
        合出来需要
        c库
        id   text  text1
         1    a     b
         1    aa    bb
         1    aaa   null
         2    c     null
         3    null   d
    这个如何处理 on后面的条件不知道如何处理 请高手帮助 
      

  3.   

    那就是既要左连接又要右连接喽,能不能
    ...left join...union all...right join...
      

  4.   

    我试过了 但是on后面的条件如何写呢 len(a.text)=len(b.text1) and a.id=b.id 如果不写a.id=b.id 话就会产生多条记录 如果写了 在左边中没有的id就插不进去
      

  5.   

    小第我是新手 希望各位老大 能把sql语言写全一点 小弟再次感谢
      

  6.   

    insert into c 
    select distinct * from (
    select a.id, a.text,b.text1 from a
    left join b on a.id=b.id and len(a.text)=len(b.text1)
    union all
    select b.id, a.text,b.text1 from a
    right join b on a.id=b.id and len(a.text)=len(b.text1)) d得到结果:    id   text  text1
         1    a     b
         1    aa    bb
         1    aaa   null
         2    c     null
         3    null   d
      

  7.   

    create table a库(id int, [text] varchar(20))
    create table b库(id int, text1 varchar(20))
    insert into a库 values(1,'a')
    insert into a库 values(1,'aa')
    insert into a库 values(1,'aaa')
    insert into a库 values(2,'d')insert into b库 values(1,'b')
    insert into b库 values(1,'bb')
    insert into b库 values(3,'c')
    create table c库(id int ,text varchar(20),text1 varchar(30))
    go
    select rowid = identity(int,1,1),* into #a from a库
    select rowid = identity(int,1,1),* into #b from b库
    insert into c库 select isnull(a.id,b.id) as id ,
    a.text,b.text1 
    from #a a
    full join
    #b b 
    on a.id = b.id and a.rowid = b.rowid
    select * from c库drop table c库,b库,a库,#a,#b/*id          text                 text1                          
    ----------- -------------------- ------------------------------ 
    1           a                    b
    1           aa                   bb
    1           aaa                  NULL
    2           d                    NULL
    3           NULL                 c
    */