如何在没有公共列的情况下加入多个选择查询?

时间:2021-05-01 11:17:55

标签: sql

我想组合不同选择查询的多列(都返回 2 列和 1 行)。我该怎么做?

例如

select p.* from(
   (select a.id, a.global from table1 as a)
   (select j.gogl, j.popl from table2 as j)
) as p

它有多个选择,但它们都返回 2 列和仅 1 行

预期输出

<头>
id 全球 gogl popl
第一次 第一次

2 个答案:

答案 0 :(得分:0)

如果您想要两个表中所有行的组合,请使用:

select a.id, a.global, j.gogl, j.popl
from table1 a cross join
     table2 j

注意:如果所有表都有 1 行,那么结果集就会有 1 行。但是,行数可能会急剧增加或减少,具体取决于表的大小。例如,如果任何表没有行,则结果集没有行。

答案 1 :(得分:0)

如果保证单行,只需将每个选择的输出组合成 4 列,您可以使用 gsl_spmatrix_float 和始终为真的条件 - 这样,如果另一个发生,您将始终从其中获得值返回空值。

full join
相关问题