2016-10-31 146 views
1

我有三個表格,我在涉及UNION的單獨報告中創建。我想知道是否有可能創建一個大型報告,它自己將我在其他報告中使用的單獨UNION組合起來。聯盟中是否有聯盟?

它看起來像現在這種權利:

SELECT 
z.name, 
z.social 

FROM 
(SELECT * 
FROM 
(SELECT 
accta.name, 
accta.social 
FROM accta 
WHERE accta.name <> 'Bob' 
GROUP BY name 

UNION 

SELECT 
acctb.name, 
acctb.social 
FROM acctb 
GROUP BY name 

UNION 

SELECT 
acctc.name, 
acctc.social 
FROM acctc 
GROUP BY name) a 

UNION 

(SELECT 
accta.name, 
accta.social 
FROM accta 
GROUP BY name 

UNION 

SELECT 
acctb.name, 
acctb.social 
FROM acctb 
WHERE acctb.name <> 'Steve' 
GROUP BY name 

UNION 

SELECT 
acctc.name, 
acctc.social 
FROM acctc 
GROUP BY name) b 

) z 

GROUP BY z.name 

所以基本上進出口unioning三個表創建一個表,然後嘗試工會與工會提出的另一個表。

這樣的事情甚至可能嗎?我不斷收到錯誤。

+0

什麼樣的錯誤? – Krease

+0

它總是給我一個錯誤的第一個聯盟後表a –

+0

Nevermind ,,我想出來了,你需要在表b前面的SELECT *語句;否則你不會選擇UNION所用的表的任何數據 –

回答

1

是的。

如果你想層次添加到您的工會,只需要用括號:

SELECT columnName FROM tableName 
UNION (SELECT columnName FROM anotherTableName UNION SELECT columnName FROM thirdTableName) 
ORDER BY columnName; 
0

有簡單語法的錯誤,我需要添加SELECT *表B的前面聲明。由於代碼在我的示例中,因此表b中沒有任何內容被選中,因此表格不會與任何東西結合。