2017-07-18 169 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」 按照新表的新列名。

相關問題