【问题标题】:How to combine two query results into one and I have different column name如何将两个查询结果合二为一,我有不同的列名
【发布时间】:2018-05-22 12:38:13
【问题描述】:

我有两个查询要组合成一个输出,我不能使用联合运算符,因为它们的列数不同。

**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

提前致谢

【问题讨论】:

标签: sql sql-server tsql


【解决方案1】:

如果每个查询只有一行,则它只是 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 水平追加数据

【讨论】:

    【解决方案2】:

    这里有一个小技巧:

    SELECT *
    FROM q1
    LEFT JOIN q2 ON 1 = 1
    

    【讨论】:

      猜你喜欢
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多