2010-06-19 14 views
3

Je dois mettre à jour le contenu d'un champ de données dans un tableau avec le contenu d'un autre champ dans une table chaque fois deux champs séparés, un sur chaque table , correspondre. J'ai essayé cette syntaxe mais je ne peux pas la faire fonctionner correctement sans me donner une erreur.Requête MySQL pour mettre à jour un champ avec des données d'un autre champ lorsque deux champs correspondent

UPDATE table1 
    SET field1 = table2.field1 
    FROM Table1,Table2 
WHERE Table1.entry = Table2.entry 
+0

La clause FROM doit contenir les noms de table et non les noms de champs. –

+0

Est-il garanti que chaque 'field2.entry' a exactement un possible' table2.field1'? –

+0

FROM Table1, Table2 est la correcte, typo de ma part, et non chaque field2.entry a généralement une seule valeur field1 correspondante, mais il peut en avoir plus, auquel cas je ne me soucie pas vraiment de la valeur sur laquelle il copie. – Joe

Répondre

7

update ... from est la syntaxe du serveur SQL. MySQL vous pouvez simplement utiliser plusieurs tables directement:

update 
    table1 t1 
    join table2 t2 on t2.field = t1.field 
set 
    t1.field1 = t2.matchingfield 
where 
    t1.whatever = t2.whatever 

Tout est détaillé sur la mise à jour MySQL reference page.