合并两个表sql

时间:2016-09-18 16:20:07

标签: sql postgresql-9.5

这是我的数据集: 数据集1:

col2 col3 col4
1      2    3
1      5    6

数据集2:

name2  name3 name4
 a       b     c
 d       e     l

我想合并这两个表:

col2 col3 col4 name2 name3 name4
 1    2     3   a     b     c
 1    5     6   d     e     l

我试过了:

select * from table1 join table2 on true;

但是给了我:

col2 col3 col4 name2 name3 name4
1     2    3     a    b      c
1     2    3     d    e      l

哪个不对。我怎么能实现这个目标?

4 个答案:

答案 0 :(得分:2)

您的结果应该是四条记录。

您需要一个公共密钥才能加入,但没有公钥。这是一种方法:

Deque<Integer> stack = new ArrayDeque<Integer>();

请注意,行的排序(定义匹配)是不确定的。如果这很重要,请在select t1.col2, t1.col3, t1.col4, t2.name2, t2.name3, t2.name4 from (select t1.*, row_number() over () as seqnum from table1 t1 ) t1 join (select t2.*, row_number() over () as seqnum from table2 t2 ) t2 on t1.seqnum = t2.seqnum; 中添加order by条款并进行相应排序。

答案 1 :(得分:0)

据我所知,这应该有效:

SELECT * FROM table1 JOIN table2 ON table1.row_number()=table2.row_number();

答案 2 :(得分:0)

你不需要加入这种情况。你可以从table1,table2中选择table.select *。

答案 3 :(得分:0)

如果您愿意,在这种情况下您不需要JOIN,您可以获得所有这样的列(因为如果两个表中的列数相同):

SELECT col2,col3,col4 FROM dataset1
UNION
SELECT name2,name3,name4 FROM dataset2