表a中有字段aa,bb,cc,dd,gg,表b中有字段ff,bb,dd,cc,ee。现在我想将b中的所有bb,cc,dd数据插入到a表中,不要影响到a表的结构。这样 的sql怎么写啊?
请大家帮帮忙……

解决方案 »

  1.   

    a表:
    aa bb cc dd gg
    11 12 13 14 15
    21 22 23 24 25
    b表:
    ff bb dd cc ee
    31 32 33 34 35
    41 42 43 44 45
    用一个sql语句后的效果是
    a表:
    aa bb cc dd gg
    11 12 13 14 15
    21 22 23 24 25
       32 34 44
       42 44 43
      

  2.   


    --a表和b表没关联关系吗?
    insert into a(bb, cc, dd, gg)
    select bb, dd ,cc, ee from b;
      

  3.   

    如果各个字段类型一样的话
    insert into a(bb, cc, dd, gg)
    select bb, dd ,cc, ee from b; 就可以
      

  4.   

    用一个sql语句后的效果是
    a表:
    aa bb cc dd gg
    11 12 13 14 15
    21 22 23 24 25
      32 34 44
      42 44 43这里的 32 34 44 中的 44(是不是写错了?) 
      

  5.   

    是写错了……
    反正就是那个意思……呵呵  我按照4楼朋友的方法做了,可是出了问题,就是有些字段的大小不匹配,怎么办?
    就是说a表中bb的字段大小是20,而b表中bb 的大小是24,这个插入就报错……a表是不能再改了,b表的数据也不能改动……怎么办……
      

  6.   

    --字段类型一致否
    insert into a(bb,cc,dd) select bb,cc,dd from b
      

  7.   

    两种方法
    insert into a
    select '',bb,cc,dd,'' from b 
    前提
    a表中的数据类型要与b表中对应字段的数据类型一致
    a表中的aa字段,gg字段可为空
      

  8.   

    我最后就只能备份表a,再删掉,在重建,改大小,再将数据移回来。呵呵……能不能再问你个问题啊,就是在java代码里面写sql,能不能在con=DBConnection.getConnection();后连续写几个sql都共用这个连接啊。
    就是con=DBConnection.getConnection();后在一个for循环里有很多sql插入语句,这样行么