将来自不同 table 的不同字段存储到临时 table
Store different fields from different tables to a temporary table
我正在尝试创建一个临时 table,它有两个字段(用户、密码),它们是三个 tables
的组合
TABLES
agents
username | password
clients
username | password
admin
username | password
我希望将他们字段中的数据存储到临时 table
临时 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;
您的查询应该如下所示。根据 MySQL 文档,您也可以使用 CTAS
构造来创建 temporary
table。
CREATE TEMPORARY TABLE temp_tbl
AS (SELECT username, password FROM agents
UNION
SELECT username, password FROM clients
UNION
SELECT username, password FROM admin);
CREATE VIEW all_user AS
SELECT * FROM agents
UNION ALL
SELECT * FROM clients
UNION ALL
SELECT * FROM admin
非常接近
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 中,并且您需要为派生的 table 指定一个别名。请只取一个名字,不要取两个(t1 而不是 col1、col2)
除非你像我一样将整个事情包装在另一个查询周围,否则你会遇到语法错误。
我正在尝试创建一个临时 table,它有两个字段(用户、密码),它们是三个 tables
的组合TABLES
agents
username | password
clients
username | password
admin
username | password
我希望将他们字段中的数据存储到临时 table
临时 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;
您的查询应该如下所示。根据 MySQL 文档,您也可以使用 CTAS
构造来创建 temporary
table。
CREATE TEMPORARY TABLE temp_tbl
AS (SELECT username, password FROM agents
UNION
SELECT username, password FROM clients
UNION
SELECT username, password FROM admin);
CREATE VIEW all_user AS
SELECT * FROM agents
UNION ALL
SELECT * FROM clients
UNION ALL
SELECT * FROM admin
非常接近
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 中,并且您需要为派生的 table 指定一个别名。请只取一个名字,不要取两个(t1 而不是 col1、col2)
除非你像我一样将整个事情包装在另一个查询周围,否则你会遇到语法错误。