MYSQL, copie les champs sélectionnés d'une table à l'autre
Dans MySQL, comment copier un champ avec tous les enregistrements de TABLE1
à TABLE2
qui correspond à une clé primaire ie: EMPLOYEE no.
?
6 réponses
Essayez ceci
INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
Si vous voulez dire que vous voulez Mettre à jour la colonne d'une table en utilisant la colonne d'une autre table, alors voici quelques options:
-
Une jointure:
UPDATE table1 AS t1 INNER JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo SET t1.SomeColumn = t2.SomeColumn
Alternativement, il pourrait s'agir d'une jointure gauche:
UPDATE table1 AS t1 LEFT JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo SET t1.SomeColumn = t2.SomeColumn
Qui viderait essentiellement (mis à NULL) les valeurs où aucune correspondance ne s'est produite.
-
Une sous-requête:
UPDATE table1 SET SomeColumn = ( SELECT SomeColumn FROM table2 WHERE EmployeeNo = table1.EmployeeNo )
Ceci est équivalent à la solution de jointure gauche dans #1.
Notez que dans tous les cas, il est supposé qu'une ligne dans table1
ne peut pas correspondre à plus d'une ligne dans table2
.
La requête pour copier des données d'une table à l'autre est:
Insert into table2 (field1, field2) select field1, field2 from table1
Si vous souhaitez copier uniquement les valeurs sélectionnées, utilisez la clause where dans 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
, Vous pouvez l'utiliser pour copier tous les enregistrements à partir de table1
dans table2
avec une condition.
Insert into table2 select * from table1 where field1=condition
Insérer dans table_1
(column-1
, column-2
) Sélectionnez colonne-1, colonne-2 dans table_2;