现在有两张业表A,B
A表字段 id key1 value1;
B表字段  id  key2 value2;想要合并成表C 是id key value
值是id key=key1值+key2值 value=value1值+value2值 不需要根据id去重。 怎么写?sql 数据 合并

解决方案 »

  1.   

    create table c as select a.id,a.key1+b.key2 as key,a.value1+b.value2 as value
    from a,b 
      

  2.   

    好吧当没有这个条件 其实这个ID也不是ID 就是不用去重就行!
      

  3.   

    如果这里的ID有重复,那么两张表join就会产生笛卡尔积,应该不会是你需要的结果,join表的时候有其他条件吗?
    或者根据两表的主键join
      

  4.   

    不好意思 可能我没说清楚:
    A表有数据:
     1 re qwe
     2 ll  kjk
    B 表数据
     1 mm kill
      2 nn ikk
    希望的C数据是:
     1 re qwe
     2 ll  kjk
     1 mm kill
     2 nn ikk                                      
      

  5.   

    如果这里的ID有重复,那么两张表join就会产生笛卡尔积,应该不会是你需要的结果,join表的时候有其他条件吗?
    或者根据两表的主键join不好意思 可能我没说清楚: A表有数据:
     1 re qwe
      2 ll  kjk
     B 表数据
     1 mm kill
       2 nn ikk
    希望的C数据是:
     1 re qwe
      2 ll  kjk
      1 mm kill
      2 nn ikk这里可以在创建一个表C的主键来标记
      

  6.   


    这样的需求很简单,
    insert into c
    select * from a
    union 
    select * from b;
    即可
      

  7.   


    这样的需求很简单,
    insert into c
    select * from a
    union 
    select * from b;
    即可嗯  问题在于表A和表B的字段名称不是一样的。 需要怎么写?
      

  8.   

    如果不用考虑重复数据,使用union all
    insert into c
    select * from a
    union all
    select * from b;注意union (all) 前后的select 列表中的字段数量与类型须保持一致
      

  9.   

    [quote=引用 10 楼 beyioto 的回复:
    嗯  问题在于表A和表B的字段名称不是一样的。 需要怎么写?没有关系的,比如
    select c1,c2 from a
    union all
    select c3,c3 from b;
    只要保证两个(或许有多个)select之后的字段数量相同
    且相应位置的字段类型一致,c1与c3一致,c2与c4一致
      

  10.   

    用union all就可以了 字段不同可以as成相同的
      

  11.   


    嗯 谢谢 yang626916777   解决了! Cool....