2017-07-18 160 views
-1

我需要创建一个临时表并将来自多个表的数据放入其中。在这question他们都从一个表中选择。如何从多个表中选择? (所有表格都有完全相同的列)从多个表中选择并将它们放在一个临时表中

编辑:表没有关系,它们是9个表,但它们都有相同的列,如id,用户名,密码。每个表都包含有关特定用户的信息。

+1

表格之间的关系是什么? –

+0

@TimBiegeleisen他们没有任何关系。 –

+1

那么我在这里看到的唯一选择就是将表联合在一起,但这只有在它们具有相同的定义时才有意义。 –

回答

1

Union可以帮你把那两个表,然后你可以使用TEMPORARY方法!

CREATE TEMPORARY TABLE IF NOT EXISTS tableTemp AS (SELECT * FROM table1 UNION SELECT * FROM table2) 

这将导致您的两个表的数据被“统一”到一个表中。因此,与两个表像这样

表1

testCol | testCol2 
--------+--------- 
    A |  1 

表2

testCol | testCol2 
--------+--------- 
    B |  2 

上面的代码将返回

tableTemp

testCol | testCol2 
--------+--------- 
    A |  1 
    B |  2 

希望它能帮助!

编辑

只要是明确的,上面的代码只是一个例子!你需要改变变量名:

CREATE TEMPORARY TABLE IF NOT EXISTS tableTemp AS (SELECT * FROM [[NAME OF FIRST TABLE]] UNION SELECT * FROM [[NAME OF SECOND TABLE]]) 

既然你说你有9桌,你只需要不断追加UNION SELECT为每个表。 例如:

CREATE TEMPORARY TABLE IF NOT EXISTS tableTemp AS (SELECT * FROM [[NAME OF FIRST TABLE]] UNION SELECT * FROM [[NAME OF SECOND TABLE]] UNION SELECT * FROM [[NAME OF THIRD TABLE]] UNION SELECT * FROM [[NAME OF FOURTH TABLE]] UNION SELECT * FROM [[NAME OF FIFTH TABLE]] UNION SELECT * FROM [[NAME OF SIXTH TABLE]] UNION SELECT * FROM [[NAME OF SEVENTH TABLE]] UNION SELECT * FROM [[NAME OF EIGTH TABLE]] UNION SELECT * FROM [[NAME OF NINTH TABLE]]) 
+0

我试过了,它给我一个语法错误 –

+0

哦不!什么是错误? – cosinepenguin

+0

你的SQL语法有错误;请查看第1行 –

0
CREATE TABLE IF NOT EXISTS table_3 AS SELECT 1st_table_id as union_id, 1st_table_username as union_username, 1st_table_password as union_password FROM table_1 UNION SELECT 2nd_table_id as union_id, 2nd_table_username as union_username, 2nd_table_password as union_password FROM table_2 

改变 “union_id”, “union_username” 和 “union_password” 按照新表的新列名。

相关问题