我想在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查询完成吗?
答案 0 :(得分:246)
这将做你想要的:
INSERT INTO table2 (st_id,uid,changed,status,assign_status)
SELECT st_id,from_uid,now(),'Pending','Assigned'
FROM table1
如果要包含table1中的所有行。否则,如果只想添加table1的子集,则可以在末尾添加WHERE语句。
我希望这会有所帮助。
答案 1 :(得分:58)
如果您不想列出字段,并且表的结构相同,您可以这样做:
INSERT INTO `table2` SELECT * FROM `table1`;
或者如果要创建具有相同结构的新表:
CREATE TABLE new_tbl [AS] SELECT * FROM orig_tbl;
Reference for insert select; Reference for create table select
答案 2 :(得分:20)
您可以轻松地从另一个表中获取数据。你必须只添加你想要的字段。
mysql查询是:
INSERT INTO table_name1(fields you want)
SELECT fields you want FROM table_name2
其中,值从table2复制到table1
答案 3 :(得分:4)
最好的选择是在mysql中使用INSERT ... SELECT语句。
答案 4 :(得分:4)
CREATE TABLE newTable LIKE oldTable;
然后,通过
复制数据INSERT INTO newTable SELECT * FROM oldTable;
答案 5 :(得分:3)
SELECT *
INTO newtable [IN externaldb]
FROM table1;
答案 6 :(得分:2)
INSERT INTO Table1(Column1,Column2..) SELECT Column1,Column2.. FROM Table2 [WHERE <condition>]
答案 7 :(得分:0)
以上查询仅在我们创建了具有客户匹配列的客户表
时才有效INSERT INTO clients(c_id,name,address)SELECT c_id,name,address FROM customer
答案 8 :(得分:0)
您可以尝试此代码
insert into #temp
select Product_ID,Max(Grand_Total) AS 'Sales_Amt', Max(Rec_Amount) ,'',''
from Table_Name group by Id
答案 9 :(得分:0)
您应该首先创建table2。
insert into table2(field1,field2,...) select field1,field2,.... from table1 where condition;
答案 10 :(得分:0)
如果该表存在。你可以试试 插入table_name中,选择* from old_tale;
如果该表不存在。你应该试试 创建表table_name就像old_table; 插入table_name中,选择* from old_tale;