我想通过COLUMN组合/合并两个选择查询,而不是使用UNION显示here的行。
我们说我有
SELECT attr1, attr2 FROM table1
和
SELECT attr1, attr2 FROM table2
请注意,两个表都具有相同的属性名称。
我想要一个包含以下列的结果:
attr1_table1, attr2_table1, attr1_table2, attr2_table2
编辑(仅适用于下一个,因为外部联接正常):
我的第一个选择返回类似于:
id attr1 attr2
1 3 5
2 4 6
和我的第二次选择
id attr1 attr2
1 7 9
2 8 10
我想要的结果是:
id attr1 attr2 attr1 attr2
1 3 5 7 9
2 4 6 8 10
由于
答案 0 :(得分:1)
交叉连接会非常危险,因为它会产生大量数据。例如。如果Table1和Table2各有1000行,则交叉连接的结果将是1,000,000行!
但是,我假设您想要排列匹配的行。请使用以下内容:
select COALESCE(t1.id, t2.id) as id,
t1.attr1, t1.attr2, t2.attr1, t2.attr2
from Table1 t1
full outer join Table2 t2 on
t2.id = t1.id
full outer join
表示这也会返回未找到匹配项的行。
答案 1 :(得分:0)
你的问题很模糊。但一个可能的答案是cross join
:
select t1.attr1 as attr1_1, t1.attr2 as attr2_1,
t2.attr1 as attr1_2, t2.attr2 as attr2_2
from table1 t1 cross join
table2 t2;