我需要創建一個臨時表並將來自多個表的數據放入其中。在這question他們都從一個表中選擇。如何從多個表中選擇? (所有表格都有完全相同的列)從多個表中選擇並將它們放在一個臨時表中
編輯:表沒有關係,它們是9個表,但它們都有相同的列,如id,用戶名,密碼。每個表都包含有關特定用戶的信息。
我需要創建一個臨時表並將來自多個表的數據放入其中。在這question他們都從一個表中選擇。如何從多個表中選擇? (所有表格都有完全相同的列)從多個表中選擇並將它們放在一個臨時表中
編輯:表沒有關係,它們是9個表,但它們都有相同的列,如id,用戶名,密碼。每個表都包含有關特定用戶的信息。
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]])
嘗試使用連接和聯合。因爲你想臨時表別名會做。 對於連接,查詢會像:
Select column_names from table1 join table2 on column_names
如果你有2個以上的表,你可以用鏈的加入得到的結果。
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」 按照新表的新列名。
表格之間的關係是什麼? –
@TimBiegeleisen他們沒有任何關係。 –
那麼我在這裏看到的唯一選擇就是將表聯合在一起,但這隻有在它們具有相同的定義時纔有意義。 –