使用从两个查询返回的数据填充tmp表

时间:2013-12-20 09:02:19

标签: mysql sql temp-tables

我正在尝试创建一个临时表,其中包含来自两个查询的返回数据。这是我试过的

CREATE TEMPORARY TABLE IF NOT EXISTS tmp AS (
 SELECT * FROM (`users`) WHERE `v1` = 1
 UNION
 SELECT * FROM (`users`) WHERE `v2` = 1
)
select * from tmp;

以下是我得到的结果

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION

2 个答案:

答案 0 :(得分:2)

试试这个

CREATE TEMPORARY TABLE IF NOT EXISTS tmp AS 
 SELECT * FROM (`users`) WHERE `v1` = 1
 UNION
 SELECT * FROM (`users`) WHERE `v2` = 1
;
select * from tmp;

请参阅http://www.sqlfiddle.com/#!2/1302a7/1进行演示

答案 1 :(得分:0)

这会奏效。请试试。这只是语法。请相应地更新您的查询。

create temporary table tmp
select * from
 (
   (select * from users)
     UNION
   (select * from users)
 ) bt;

 SELECT * FROM tmp;