2017-06-13 80 views
1

我需要創建新表,然後將某些表的某些列複製到新表中。第一張桌子的三列。第二張桌子的五列。第三張桌子的三列。第四張桌子的三列。將某些表中的某些列合併到一個新表中

表1中的列:eid(primary key),first name,last name,status
表2中的列:​​。
表三列:rid(primary key) , mid ,rvalue
表4中的列:rfid(primary key), mid, reference

我該怎麼做?

+0

列並不重要。什麼*行*你會插入到新表中? –

+0

每列哈瓦149行..我想要複製所有原料到新表中。 – hsi

+0

然後只需使用INSERT INTO newtable(...)從舊錶中選擇任何東西。你如何識別「舊」表中的相應行? –

回答

1

如果表是他們之間的關係,你可以直接在創建表作爲選擇使用..

create table your_table as 
    select 
     a.col1 
     , a.col2 
     , a.col3 
     , b.col1 
     , b.col2 
     , b.col3 
     , b.col5 
     , c.col1 
     , c.col2 
     , c.col3 
     , d.col1 
     , d.col2 
     , d.col3 
    from table1 a 
    inner join table2 b on a.key1 = b.key1 
    inner join table3 c on a.key1 = c.key1 
    inner join table4 d on a.key1 = d.key1 

這direcly創建結果表從選擇

否則,你可以使用插入選擇

1
INSERT INTO new_table (field_1,field_2...field_n) 
SELECT first_table.column_1 
    ,first_table.column_2 
    ,first_table.column_3 
    ,second_table.column_1 
    ,second_table.column_2 
    ,second_table.column_3 
    ,second_table.column_4 
    ,second_table.column_5 
    ,third_table.column_1 
    ,third_table.column_2 
    ,third_table.column_3 
    ,fourth_table.column_1 
    ,fourth_table.column_2 
    ,fourth_table.column_3 
FROM first_table 
INNER JOIN second_table ON first_table.field_to_join = second_table.field_to_join 
INNER JOIN third_table ON second_table.field_to_join = third_table.field_to_join 
INNER JOIN fourth_table ON third_table.field_to_join = fourth_table.field_to_join 

顯然,你需要調整您的查詢,您的加入/連接的類型和字段根據您的需要。

(field_1,field_2...field_n)你必須指出選擇查詢的輸出將會去的字段。

相關問題