我想要将两个查询组合成单个输出,我不能使用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
提前致谢
答案 0 :(得分:4)
如果每个查询只有一行,那么它只是CROSS JOIN
SELECT
*
FROM
(query1) AS q1
CROSS JOIN
(query2) AS q2
如果每个查询都有多行,则需要INNER JOIN
或FULL 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