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.?

25
demandé sur Ahmed 2012-06-23 13:32:44

6 réponses

Essayez ceci

INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
42
répondu Anand 2012-06-23 09:48:15

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:

  1. 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.

  2. 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.

48
répondu Andriy M 2016-04-04 07:11:27

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


19
répondu php 2014-08-24 18:50:21
update
  table1 t1
  join table2 t2 on t2.field = t1.field
set
  t1.field1 = t2.matchingfield
where
  t1.whatever = t2.whatever
5
répondu brigitte18 2015-11-27 09:01:57

, 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
0
répondu Ntaganira 2017-10-01 15:57:54

Insérer dans table_1(column-1, column-2) Sélectionnez colonne-1, colonne-2 dans table_2;

-2
répondu K. Salabir 2017-11-05 00:58:51