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