将不同表中的不同字段存储到临时表中

时间:2016-12-02 14:29:06

标签: php mysql select union alias

我正在尝试创建一个临时表,其中有两个字段(user,pass),这是三个表的组合

TABLES

agents
username | password

clients
username | password

admin
username | password

我希望他们的字段中的数据存储到临时表

TEMPORARY TABLE

temp_tbl
username | password

这是我的MySQL查询(我知道这是一种错误的语法)

CREATE TEMPORARY TABLE temp_tbl ENGINE=MEMORY 
AS (SELECT username,password FROM agents UNION SELECT username,password FROM clients UNION SELECT username,password FROM admin) AS col1, col2;

3 个答案:

答案 0 :(得分:2)

您的查询应该如下所示。根据MySQL文档,您也可以使用CTAS构造来创建temporary表。

CREATE TEMPORARY TABLE temp_tbl
AS (SELECT username, password FROM agents 
UNION 
SELECT username, password FROM clients 
UNION 
SELECT username, password FROM admin);

答案 1 :(得分:1)

onResourceReceived

答案 2 :(得分:1)

非常接近

CREATE TEMPORARY TABLE temp_tbl ENGINE=MEMORY 
AS SELECT * FROM 
 (SELECT username,password FROM agents 
 UNION SELECT username,password FROM clients 
 UNION SELECT username,password FROM admin) AS t1;

您必须将这三个联合包装在另一个SELECT中,并且需要为该派生表提供别名。只有一个名字,请不要两个(t1而不是col1,col2)

除非你按照我的方式将整个事情包装成另一个查询,否则会出现语法错误。