Home » Mysql » MYSQL, Copy selected fields from one table to another

MYSQL, Copy selected fields from one table to another

Posted by: admin November 30, 2017 Leave a comment

Questions:

In MySQL, How do I copy a FIELD with all RECORDS from TABLE1 to TABLE2 which corresponds to a primary key ie: EMPLOYEE no.?

Answers:

Try this

INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`

Questions:
Answers:

If you mean you want to update one table’s column using another table’s column, then here are some options:

  1. A join:

    UPDATE table1 AS t1
      INNER JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo
    SET t1.SomeColumn = t2.SomeColumn
    

    Alternatively it could be a left join:

    UPDATE table1 AS t1
      LEFT JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo
    SET t1.SomeColumn = t2.SomeColumn
    

    which would essentially empty (set to NULL) the values where no match occurred.

  2. A subquery:

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

    This is equivalent to the left join solution in #1.

Note that in all cases it is assumed that a row in table1 can match no more than one row in table2.

Questions:
Answers:

The query for copy data from one table to another is:

Insert into table2 (field1, field2)  select field1, field2 from table1

If you want to copy only selected values, then use where clause in query

Insert into table2 (field1, field2)  select field1, field2 from table1 where field1=condition

Questions:
Answers:
update
  table1 t1
  join table2 t2 on t2.field = t1.field
set
  t1.field1 = t2.matchingfield
where
  t1.whatever = t2.whatever

Questions:
Answers:

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