In MySQL, How do I copy a FIELD with all RECORDS from TABLE1 to TABLE2 which corresponds to a primary key ie: EMPLOYEE no.?
INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
If you mean you want to update one table’s column using another table’s column, then here are some options:
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.
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
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
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
table2 with a condition.
Insert into table2 select * from table1 where field1=condition