日期:2014-05-16  浏览次数:20681 次

合并结构相同的多个表
postgreSQL数据库中现在有多个结构完全相同的表,想将它们合并成一个表,各个表之间无重复记录。
如:
A: a b c
  1 3 5
  2 3 6
  3 3 7

B: a b c
  1 4 5
  2 4 6
  3 4 7

C: 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,用来计数。合并后这个字段要如上所示。

急求大侠解决,在线等。。。
谢谢

------解决方案--------------------
SELECT a,b,c 
FROM A
UNION ALL
SELECT a,b,c
FROM B
UNION ALL
SELECT a,b,c
FROM C
------解决方案--------------------
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
------解决方案--------------------
没有好办法,用程序代码去生成这个 select * from a union all select * from b ...

然后序列1,2,3,4。。不要在SQL语句中生成,在程序中生成。
------解决方案--------------------
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) 

大概思路。