组合两个或多个select语句的输出

use*_*642 6 sql select sqlcommand sql-server-2008

如何组合output两个或多个SELECT语句,我有多个表,它们有一些我需要的数据,fetch所以我写了多个SELECT查询.现在我想结合查询结果,这样我还需要做什么?我希望输出为:

t1.qty,t2.qty,t3.qty 
Run Code Online (Sandbox Code Playgroud)

Gia*_*los 18

一种选择是:

SELECT (SELECT SUM(qty) FROM Table1 WHERE ...),
       (SELECT SUM(qty) FROM Table2 WHERE ...),
       (SELECT SUM(qty) FROM Table3 WHERE ...)
Run Code Online (Sandbox Code Playgroud)

如果有链接,另一个会加入:

SELECT * 
FROM   (SELECT ID,SUM(qty) FROM Table1 GROUP BY ID) T1
       JOIN (SELECT ID,SUM(qty) FROM Table2 GROUP BY ID) T2
           ON T1.ID = T2.ID
       JOIN (SELECT ID,SUM(qty) FROM Table3 GROUP BY ID) T3
           ON T1.ID = T3.ID
Run Code Online (Sandbox Code Playgroud)

以上选项是将结果显示在一行中.

您可能需要union来组合行:

SELECT qty FROM Table1
UNION
SELECT qty FROM Table2
UNION
SELECT qty FROM Table3
Run Code Online (Sandbox Code Playgroud)

如果您定义更具体的需求,还有更多选择


小智 3

为什么不创建一个语句来一次获取所有这些内容呢?

SELECT tableA.data1, tableB.data2 FROM tableA, tableB WHERE <condition here>
Run Code Online (Sandbox Code Playgroud)