如何将数据从一个表复制到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