我想在MySQL中將數據從一個表複製到另一個表。如何將數據從一個表複製到MySQL中的另一個新表?
表1(現有的表):
aid
st_id
from_uid
to_gid
to_uid
created
changed
subject
message
link
表2(新表)
st_id
uid
changed
status
assign_status
我想從表1的數據複製的某些字段成表2
這可以使用MySQL查詢完成嗎?
我想在MySQL中將數據從一個表複製到另一個表。如何將數據從一個表複製到MySQL中的另一個新表?
表1(現有的表):
aid
st_id
from_uid
to_gid
to_uid
created
changed
subject
message
link
表2(新表)
st_id
uid
changed
status
assign_status
我想從表1的數據複製的某些字段成表2
這可以使用MySQL查詢完成嗎?
SELECT *
INTO newtable [IN externaldb]
FROM table1;
不起作用。根據[文檔](http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-select-into-table.html),「MySQL服務器不支持SELECT ... INTO TABLE Sybase SQL擴展「 – Bryan
的最佳選擇是使用INSERT ... SELECT語句在MySQL。
直觀:)我喜歡它。這是一條普通的SELECT語句,前面有一行「INSERT INTO」。 –
你可以很容易地從另一個表中獲取數據。你只需要添加字段。
MySQL查詢是:
INSERT INTO table_name1(fields you want)
SELECT fields you want FROM table_name2
其中,該值從表2複製到表1
如果你不想列表中的字段,以及表的結構是同樣的,你可以這樣做:
INSERT INTO `table2` SELECT * FROM `table1`;
,或者如果你想創建具有相同結構的新表:
CREATE TABLE new_tbl [AS] SELECT * FROM orig_tbl;
Reference for insert select;如果我們已經創建了客戶表與客戶的匹配列
INSERT INTO clients(c_id,name,address)SELECT c_id,name,address FROM customer
爲什麼'[AS]'在方括號中,這裏由'AS'完成 –
它表示該單詞是可選的。它是這樣寫的,因爲我複製並粘貼了文檔;它不會添加任何東西。 我認爲'AS'在其他SQL方言中是強制性的。 – Bryan
INSERT INTO Table1(Column1,Column2..) SELECT Column1,Column2.. FROM Table2 [WHERE <condition>]
雖然這段代碼可能會回答這個問題,但最好解釋它如何解決問題以及爲什麼要使用它。從長遠來看,僅有代碼的答案是沒有用的。 –
上面的查詢只能你可以試試這個代碼
insert into #temp
select Product_ID,Max(Grand_Total) AS 'Sales_Amt', Max(Rec_Amount) ,'',''
from Table_Name group by Id
CREATE TABLE newTable LIKE oldTable;
隨後,向數據超過
INSERT INTO newTable SELECT * FROM oldTable;
這是一次性工作還是您打算定期做? – jdias
@@ jdias:直到現在,它只是一次性工作。 – Fero
@jdias澄清一下,如果它不是一次性工作,那麼MySQL noob應該怎麼做呢? – Seanny123