A表如下:id      字段1   字段2
1       值1      值2
2       值3      值3
。A表如下:id      字段3   字段4
1       值5      值6
2       值7      值8
。根据这两个表的字段生成一个新的表,新表的字段则是所有A、B表,根据ID来进行关联,即如下表id      字段1   字段2    字段3   字段4
1       值1      值2     值5      值6
2       值3      值3     值7      值8
。请问这个该如何实现啊?

解决方案 »

  1.   

    SELECT A.*,B.字段3,B.字段4 FROM A,B WHERE A.ID=B.ID
      

  2.   

    更正一下A表如下: id      字段1  字段2 
    1      值1      值2 
    2      值3      值4
    。 B表如下: id      字段3  字段4 
    1      值5      值6 
    2      值7      值8 
    。 根据这两个表的字段生成一个新的表,新表的字段则是所有A、B表,根据ID来进行关联,即如下表 id      字段1  字段2    字段3  字段4 
    1      值1      值2    值5      值6 
    2      值3      值4    值7      值8 
      

  3.   

    ----------------------------------------------------------------
    -- Author  :SQL77(只为思齐老)
    -- Date    :2010-01-14 17:15:07
    -- Version:
    --      Microsoft SQL Server  2000 - 8.00.194 (Intel X86) 
    -- Aug  6 2000 00:57:48 
    -- Copyright (c) 1988-2000 Microsoft Corporation
    -- Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 3)
    --
    ----------------------------------------------------------------
    --> 测试数据:#A
    if object_id('tempdb.dbo.#A') is not null drop table #A
    go 
    create table #A([id] int,[字段1] varchar(3),[字段2] varchar(3))
    insert #A
    select 1,'值1','值2' union all
    select 2,'值3','值4'
    --> 测试数据:#B
    if object_id('tempdb.dbo.#B') is not null drop table #B
    go 
    create table #B([id] int,[字段3] varchar(3),[字段4] varchar(3))
    insert #B
    select 1,'值5','值6' union all
    select 2,'值7','值8'
    --------------开始查询--------------------------select A.*,B.字段3,B.字段4  from #A A,#B B WHERE A.ID=B.ID----------------结果----------------------------
    /* (所影响的行数为 2 行)
    (所影响的行数为 2 行)id          字段1  字段2  字段3  字段4  
    ----------- ---- ---- ---- ---- 
    1           值1   值2   值5   值6
    2           值3   值4   值7   值8(所影响的行数为 2 行)
    */
      

  4.   

    select a.id ,     a.字段1 , a.字段2 ,   b.字段3 , b.字段4  from a
    left join b
    on a.id =b.id
      

  5.   


    SELECT A.*,B.* FROM A,B WHERE A.ID=B.ID
      

  6.   

    你要创建一个表,就插入一个临时表也行,晕,如果你有的,就直接INSERT TB SELECT ....
      

  7.   

    select ... intoinsert into??
      

  8.   

    --1
    select a.id ,     a.字段1 , a.字段2 ,   b.字段3 , b.字段4  into newTb from a,b
    --2
    insert into newTb
     select a.id ,     a.字段1 , a.字段2 ,   b.字段3 , b.字段4  from a,b
      

  9.   

    你要创建一个表,就插入一个临时表也行,晕,如果你有的,就直接INSERT TB SELECT .... 
     
      

  10.   

    如果字段都要且保证字段不重复
    就用*代替
    select * into tb from A,B
      

  11.   


    动态执行吧,SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('TB') 
    用字符拼接
      

  12.   


    declare @ExecSql nvarchar(max)set @ExecSql='Create Table T_ResultTable('
     select @ExecSql = @ExecSql + ''+aa.name +' '+aa.Typename+', ' from
     
     ( select Distinct a.Name,b.name as Typename from sys.columns a
    left join sys.types b on a.system_type_id = b.system_type_id
     where object_id = object_id('A1') or object_id = object_id('B1')
     ) aa
    set  @ExecSql = @ExecSql +')'
     --print @ExecSql
     exec(@ExecSql)
      

  13.   

    select *
    from a inner jon b on a.id=b.id
      

  14.   


    select A.*,B.字段3,B.字段4 into [新表] from #A A,#B B WHERE A.ID=B.ID and 1<>1
      

  15.   

    if object_id('tb1') is not null
    drop table tb1
    go
    create table tb1(iid int,     字段1 varchar(10),  字段2 varchar(10))
    insert into tb1
    select 1  ,    '值1' ,     '值2'  union all
    select 2    ,  '值3'   ,   '值3' 
    if object_id('tb2') is not null
    drop table tb2
    go
    create table tb2(iid int,     字段3 varchar(10),  字段4 varchar(10))
    insert into tb2
    select 1  ,    '值5' ,     '值6'  union all
    select 2    ,  '值7'   ,   '值8' 
    select * from tb1 t1,tb2 t2 where t1.iid=t2.iid结果:
    1 值1 值2 1 值5 值6
    2 值3 值3 2 值7 值8
      

  16.   

    谢谢楼上各位!我用了这条语句执行,基本可以达到要求,但是有一个问题,如果两个表中有相同的字段则会出现错误,如何实现有重复字段则把后面链接的表中重复字段删除,或者是可以手动指定每个表中哪几个字段不连接进来,谢谢。select * into tb from a,b  WHERE a.ID=b.ID
      

  17.   

    select * from table_1 inner join table_2 on table_1.id=table_2.id
      

  18.   

    还是出错啊
    消息 2705,级别 16,状态 3,第 1 行
    各表中的列名必须唯一。在表 'tb' 中多次指定了列名 'Id'。