无法使用UNION ALL创建新表

时间:2017-05-16 16:51:30

标签: mysql union

SQL执行这段代码(t1和t2具有相同的结构)

 SELECT * FROM `t1` UNION ALL SELECT * FROM `t2`

但不是这一个:

CREATE TABLE `test` AS (
SELECT * FROM `prospects-non-clients-valid-quote-images-solo` 
UNION ALL
SELECT * FROM `prospects-non-clients-valid-quote-images-duet` )

我收到以下错误消息:

  

“1064 - 您的SQL语法有错误;请查看手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第3行'UNION ALL SELECT * FROM t2)'附近

我错过了什么? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

假设UNION ALL正常工作,请使用外部SELECT * from

CREATE TABLE `test` AS select * from (
SELECT * FROM `prospects-non-clients-valid-quote-images-solo` 
UNION ALL
SELECT * FROM `prospects-non-clients-valid-quote-images-duet`) t

我建议您在查询中明确指定列名,而不是*,因为表格模式需要随时间变化。