合并结构相同的多个表
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)
大概思路。