В MySQL, как мне скопировать FIELD со всеми RECORDS из TABLE1 в TABLE2, который соответствует первичному ключу, т.е.: EMPLOYEE no.?
MYSQL, копирование выбранных полей из одной таблицы в другую
Ответ 1
Попробуйте это
INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
Ответ 2
Если вы хотите обновить один столбец таблицы, используя другой столбец таблицы, то вот несколько вариантов:
-
Соединение:
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.
Обратите внимание, что во всех случаях предполагается, что строка в table1
может соответствовать не более одной строке в table2
.
Ответ 3
Запрос для копирования данных из одной таблицы в другую:
Insert into table2 (field1, field2) select field1, field2 from table1
Если вы хотите скопировать только выбранные значения, используйте предложение where в запросе
Insert into table2 (field1, field2) select field1, field2 from table1 where field1=condition
Ответ 4
update
table1 t1
join table2 t2 on t2.field = t1.field
set
t1.field1 = t2.matchingfield
where
t1.whatever = t2.whatever
Ответ 5
Вы можете использовать это, чтобы скопировать все записи из table1
в table2
с условием.
Insert into table2 select * from table1 where field1=condition
Ответ 6
INSERT INTO table_1
(column-1
, column-2
) SELECT column-1, column-2 FROM table_2;