postgreSQL数据库中现在有多个结构完全相同的表,想将它们合并成一个表,各个表之间无重复记录。
如:
A: a b c
   1 3 5
   2 3 6
   3 3 7B: a b c
   1 4 5
   2 4 6
   3 4 7C: a b c
   1 5 5
   2 5 6
   3 5 7合并后:
D:
   a b c
   1 3 5
   2 3 6
   3 3 7
   4 4 5
   5 4 6
   6 4 7
   7 5 5
   8 5 6
   9 5 7
注意a字段相当于id,用来计数。合并后这个字段要如上所示。急求大侠解决,在线等
谢谢

解决方案 »

  1.   

    SELECT a,b,c 
    FROM A
    UNION ALL
    SELECT a,b,c
    FROM B
    UNION ALL
    SELECT a,b,c
    FROM C
      

  2.   

    union all生成一个新的表如t表可以修改a列的数据类型为自增列不就可以了
    alter table t modify a int auto_increment;
      

  3.   

    SELECT a,b,c  
    FROM A
    UNION ALL
    SELECT a+(select max(id) from A),b,c
    FROM B
    UNION ALL
    SELECT a+(select max(id) from A)+(select max(id) from B),b,c
    FROM C
      

  4.   


    我生成的表是
    create table t as
    select * from a union all
    select * from b union all
    select * from c union all;得到了新的表t后在postgreSQL数据库中怎么讲字段a的数据类型改为自增的呢?麻烦你写个最终的sql语句呗。你上面写的那个在postgreSQL上不能运行啊。谢谢
      

  5.   

    没有好办法,用程序代码去生成这个 select * from a union all select * from b ...然后序列1,2,3,4。。不要在SQL语句中生成,在程序中生成。
      

  6.   

    insert into new_table(one,two) as (
     select b one,c two from a 
     union 
     select b one,c two from b
     union 
     select b one,c two from c)
    表:new_table(id(自增),one,two) 大概思路。