如何将两个查询结果合并为一个并且我具有不同的列名

Bha*_*anu 1 sql t-sql sql-server

我有两个查询想合并为一个输出,我不能使用Union运算符,因为它们具有不同的列数。

**First query result**

A1     A2

10     15

**Second query Result**

B1   B2

5      10

**The final result would be**

A1    A2     B1     B2

10    15     5       10
Run Code Online (Sandbox Code Playgroud)

提前致谢

Mat*_*lie 5

如果每个查询只有一行,那只是一个 CROSS JOIN

SELECT
  *
FROM
  (query1)   AS q1
CROSS JOIN
  (query2)   AS q2
Run Code Online (Sandbox Code Playgroud)

如果每个查询有多个行,则在两组数据之间需要a INNER JOIN或a FULL OUTER JOIN和某种关系,以便您可以告诉SQL引擎哪一行与哪一行联接...

SELECT
  *
FROM
  (query1)   AS q1
FULL OUTER JOIN
  (query2)   AS q2
      ON  q2.id2 = q1.id1   -- Or some other predicate
Run Code Online (Sandbox Code Playgroud)


注意:

  • UNION 垂直追加数据
  • JOIN 水平附加数据