这是我的数据集: 数据集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
哪个不对。我怎么能实现这个目标?
答案 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