簡體   English   中英

如何在沒有臨時表的情況下對子查詢的結果進行UNION?

[英]How do I UNION over the result of a subquery without a temp table?

我有一個復雜的查詢,該查詢導致我想將多個列合並為一個列。

天真的UNION構造使我可以將FROM從每個查詢中組合起來。 我希望FROM是復雜查詢的結果。

我想說:

SELECT row1 AS result FROM (complex query)
UNION
SELECT row2 AS result FROM (same complex query)
UNION
SELECT row3 AS result FROM (same complex query)
...

如何在MySQL 5.6.10(我意識到CTE很好地解決了我的問題)中做到了這一點,並且沒有臨時表(我的DBA偏執狂)。

您可以使用如下所示的cte塊:

with cte as
(
   complex query comes here
)
select row1 as result from cte
union
select row2 as result from cte
...

使用模板是另一種替代解決方案。

有關更多的cte示例: http : cte

編輯:由於OP使用的是較舊的版本,這是一個替代解決方案:

在主要的復雜查詢中使用如下所示的#temp表:

Select ...
into #temp
from ...
...

然后,使用#temp表進行聯合:

select row1 as result from #temp
union
select row2 as result from #temp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM