38

在 MySQL 中,如何将包含所有记录的字段复制TABLE1TABLE2对应于主键的字段,即:EMPLOYEE no.

4

8 回答 8

86

如果您的意思是要使用另一个表的列更新一个表的列,那么这里有一些选项:

  1. 一个连接:

    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)没有匹配的值。

  2. 子查询:

    UPDATE table1
    SET SomeColumn = (
      SELECT SomeColumn
      FROM table2
      WHERE EmployeeNo = table1.EmployeeNo
    )
    

    这相当于#1 中的左连接解决方​​案。

请注意,在所有情况下,都假定 in 中的一行table1只能匹配 中的一行table2

于 2012-06-23T10:30:57.997 回答
54

尝试这个

INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
于 2012-06-23T09:48:15.063 回答
26

将数据从一个表复制到另一个表的查询是:

INSERT INTO `table2` (`field1`, `field2`)
    SELECT `field1`, `field2` FROM `table1`

如果只想复制选定的值,请在查询中使用 where 子句

INSERT INTO `table2` (`field1`, `field2`)
    SELECT `field1`, `field2` FROM `table1`
    WHERE `field1` = condition
于 2013-12-26T12:17:23.877 回答
6
update
  table1 t1
  join table2 t2 on t2.field = t1.field
set
  t1.field1 = t2.matchingfield
where
  t1.whatever = t2.whatever
于 2015-11-27T09:01:57.987 回答
3

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
于 2017-01-01T12:15:52.400 回答
1

假设表结构如下。

表 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”条件。

谢谢!!!

于 2019-12-09T07:14:49.033 回答
-1

INSERT INTO table_1( column-1, column-2) SELECT column-1, column-2 FROM table_2;

于 2017-11-05T00:58:51.543 回答
-2

Insert into Delivery (DeliveredDate, appid, DownloadSize, UploadSize) select Delivered, Appid, DownloadSize,UploadSize from Delivery_Summary;

于 2018-10-23T09:10:54.770 回答