在MySQL中,如何将包含所有记录的FIELD从TABLE1
复制到TABLE2
,该记录对应一个主键,即:EMPLOYEE no.
?
答案 0 :(得分:58)
如果您的意思是想要使用另一个表的列更新一个表的列,那么这里有一些选项:
加入:
UPDATE table1 AS t1
INNER JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo
SET t1.SomeColumn = t2.SomeColumn
或者它可以是左连接:
UPDATE table1 AS t1
LEFT JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo
SET t1.SomeColumn = t2.SomeColumn
基本上是空的(设置为NULL)没有匹配的值。
子查询:
UPDATE table1
SET SomeColumn = (
SELECT SomeColumn
FROM table2
WHERE EmployeeNo = table1.EmployeeNo
)
这相当于#1中的左连接解决方案。
请注意,在所有情况下,假设table1
中的行只能匹配table2
中不超过一行。
答案 1 :(得分:44)
试试这个
INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
答案 2 :(得分:22)
从一个表到另一个表的复制数据查询是:
Insert into table2 (field1, field2) select field1, field2 from table1
如果要仅复制选定的值,请在查询
中使用where子句
Insert into table2 (field1, field2) select field1, field2 from table1 where field1=condition
答案 3 :(得分:6)
update
table1 t1
join table2 t2 on t2.field = t1.field
set
t1.field1 = t2.matchingfield
where
t1.whatever = t2.whatever
答案 4 :(得分:2)
您可以使用此功能将条件中的table1
的所有记录复制到table2
。
Insert into table2 select * from table1 where field1=condition
答案 5 :(得分:0)
假设表结构如下。
表A-Col1,Col2,Col3 表格B-Col1,Col2,Col3
无需选择表的所有列即可将数据从1个表传输到同一数据库中的另一个表。 您可以将行从TableA复制(插入)到TableB。
代码如下-
Insert into TableB (Col1, Col2 ,Col3)
Select Col1, Col2 ,Col3 from TableA
您也可以执行此操作-
Insert into TableB (Col1, Col2, Col3)
Select * from TableA
两个代码都可以工作,您需要查看您的要求。
通用代码-
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;
如果需要,您可以添加“在哪里”条件。
谢谢!
答案 6 :(得分:-2)
INSERT INTO table_1
(column-1
,column-2
)SELECT column-1,column-2 FROM table_2;
答案 7 :(得分:-2)
Insert into Delivery (DeliveredDate, appid, DownloadSize, UploadSize) select Delivered, Appid, DownloadSize,UploadSize from Delivery_Summary;