在 MySQL 中,如何将包含所有记录的字段复制TABLE1
到TABLE2
对应于主键的字段,即:EMPLOYEE no.
?
8 回答
如果您的意思是要使用另一个表的列更新一个表的列,那么这里有一些选项:
一个连接:
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 中的左连接解决方案。
请注意,在所有情况下,都假定 in 中的一行table1
只能匹配 中的一行table2
。
尝试这个
INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
将数据从一个表复制到另一个表的查询是:
INSERT INTO `table2` (`field1`, `field2`)
SELECT `field1`, `field2` FROM `table1`
如果只想复制选定的值,请在查询中使用 where 子句
INSERT INTO `table2` (`field1`, `field2`)
SELECT `field1`, `field2` FROM `table1`
WHERE `field1` = condition
update
table1 t1
join table2 t2 on t2.field = t1.field
set
t1.field1 = t2.matchingfield
where
t1.whatever = t2.whatever
You can use this to copy all the records from table1
into table2
with a condition.
Insert into table2 select * from table1 where field1=condition
假设表结构如下。
表 A - Col1、Col2 、Col3 表 B - Col1、Col2 、Col3
无需选择表的所有列即可将数据从一个表传输到同一数据库中的另一个表。您可以将 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;
如果需要,您可以添加“Where”条件。
谢谢!!!
INSERT INTO table_1
( column-1
, column-2
) SELECT column-1, column-2 FROM table_2;
Insert into Delivery (DeliveredDate, appid, DownloadSize, UploadSize) select Delivered, Appid, DownloadSize,UploadSize from Delivery_Summary;