是否可以在联盟内建立联盟?

时间:2016-10-31 18:02:23

标签: mysql union

我有三个表,我在涉及UNIONS的单独报告中创建。我想知道是否有可能创建一个大型报告本身UNIONed我在其他报告中使用的单独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

所以基本上我正在联合三个表来创建表,然后尝试将其与另一个由联合组成的表联合起来。

这样的事情是否可能?我一直都有错误。

2 个答案:

答案 0 :(得分:1)

如果要为工会添加层次结构,只需使用括号:

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

答案 1 :(得分:0)

语法中只有一个错误,我需要在表b前面添加SELECT *语句。由于代码在我的示例中,因此表b中没有选择任何内容,因此表格不会在任何内容上进行联合。