我想把一个表(a)的数据导到另一个已经存在的表(b)中,
把a中的部分列插入到b中,而且b自己还有一个列(id)
怎么办啊

解决方案 »

  1.   

    create table t1(a int)
    create table t2(id int,a int)insert into t1(a) select t2.a from t2
      

  2.   

    insert into tablename1(fields1) select fields2 from tablename2
    fields1的字段个数据相对应于fields2的个数。
      

  3.   

    楼主的问题好象不明确哦!!
    你说b表是已经存在的。
    要插入b表的数据从a表中得来的。如果要插入到b表中的数据与b表中某些列的数据类型不一致的话是不能插入成功的。还有b表的id列的一些键属性你没说是什么。
    在这里我有2个想法:
    1。如果你要把a表的数据全部插入一个b表可以这样。(b表可以先不创建)
    select * from ainto b
    2.a表中的部分数据插入到b表中。
    select a.fields_1,a.fields_2 from a into b(fields_1,fileds_2)
    --a表和b表的fields_1 和fields_2 列的数据类型必须一致。
      

  4.   

    楼主的意思不太明白,主要是B表的ID字段是递增的字段,还是什么
    如果使用insert into tablename1(fields1) select fields2 from tablename2
    而ID字段又不是自动递增字段的话,且ID不能为空时,可能出现问题
      

  5.   

    楼上的语法有问题吧?
    select ... into ... from ...
    而且into后面好像只能加表名,不能再加字段名了。
    我试了一下,可以将源表的数据以字段别名的方式到入表中。例如:
    A表:a, aa, aaa
    B表:b, bb, bbb
    select A.a as b, A.aa as bb, A.aaa as bbb 
    into B
    from A 
    就可以插入了。数据类型可兼容就行。另外,我觉得楼主的意思是根据A表数据向B表增加字段,即
    A表:a, aa
    B表:b
    操作之后B表:b, a, aa
    我试了一下,直接alter table不能嵌套子查询,所以只能先向B表添加字段,再insert数据。
      

  6.   

    澄清一下,我是指 kendejihxx(冰赐&龙龙)  的回复中的语法问题
      

  7.   

    最简单的办法,用SQL的数据导出功能
    想哪个字段对应到哪个字段都可以
      

  8.   

    在这里说下对不起。我确实犯了语法错误。当时是在网吧上的。没怎么仔细想。等到发帖后才知道有语法错误。
    不过在这里我要谢谢seraphw(天平@-@)给我指出了错误。