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

时间:2018-05-22 12:38:13

标签: sql sql-server tsql

我想要将两个查询组合成单个输出,我不能使用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

提前致谢

2 个答案:

答案 0 :(得分:4)

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

SELECT
  *
FROM
  (query1)   AS q1
CROSS JOIN
  (query2)   AS q2

如果每个查询都有多行,则需要INNER JOINFULL OUTER JOIN以及两组数据之间的某种关系,以便您可以告诉SQL引擎哪一行加入哪一行...

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


注意:

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

答案 1 :(得分:0)

这是一个小技巧:

SELECT *
FROM q1
LEFT JOIN q2 ON 1 = 1