MYSQL,将选定的字段从一个表复制到另一个表

时间:2012-06-23 09:32:44

标签: mysql mysql-workbench

在MySQL中,如何将包含所有记录的FIELD从TABLE1复制到TABLE2,该记录对应一个主键,即:EMPLOYEE no.

8 个答案:

答案 0 :(得分:58)

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

  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中的左连接解决方​​案。

  3. 请注意,在所有情况下,假设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_1column-1column-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;