2012-04-14 95 views
1

我有兩個表,需要頂級副本彼此INSERT INTO tbl_new SELECT FROM tbl_old插入從另一個妹妹表一個額外字段

他們倆有3個完全相同的列,但tbl_new有一個名爲「類型」我怎麼能填充它第4列在相同的查詢中。

我需要從tbl_old複製行和值分配給細胞 「類型」

INSERT INTO tbl_new SELECT FROM tbl_old, (type) values (floor(rand() * 10)) 

不起作用

回答

1

tbl_old有兩列tbl_new有三個

tbl_old 
colA | colB 

tbl_new 
colA | colB | colC 

假設你想用colA和colB值的總和填充colC。您可以使用此:

INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,(colA+colB) FROM tbl_old; 

在您的例子:

INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,floor(rand()*10) FROM tbl_old; 
1

如下嘗試:

INSERT INTO tbl_new (column1,column2,column3,type) 
SELECT column1,column2,column3,floor(rand() * 10) FROM tbl_old 

注:與你的列名替換COLUMN1,column1.column3。

0

上面的這些答案是正確的,但想象如果除了額外列以外所有內容都相同,則需要花費時間寫出列。

下面是一個更整潔查詢,如果該表是相同的,以便在端部附加列:

INSERT INTO tbl_new SELECT *, floor(rand()*10) FROM tbl_old; 
相關問題