2009-06-26 6 views
4

J'essaie de copier le contenu d'une colonne dans une base de données mysql dans une table identique dans une autre base de données mysql.Colonne introuvable lors d'une mise à jour de base de données croisée dans mysql

J'utilise:

UPDATE db1.table 
SET db1.table.name = db2.table.name, 
     db1.table.address = db2.table.address 
WHERE db1.table.id = db2.table.id; 

Je reçois l'erreur 1054: Unknown column 'db2.table.id' dans 'where'.

Les deux tables ont une colonne id, donc je ne sais pas pourquoi cela ne fonctionnera pas. Je suis connecté en tant qu'administrateur et j'ai tous les droits sur les deux bases de données.

Répondre

8
UPDATE db1.table 
JOIN db2.table 
ON  db1.table.id = db2.table.id 
SET db1.table.name = db2.table.name, 
     db1.table.address = db2.table.address 
+0

Merci. Travaillé précisément comme j'espérais. –

+0

Notez que vous pouvez utiliser quelque chose comme ON db1.table.id = db2.table.id AND db1.table.id2 = db2.table.id2 pour une jointure multiple, comme c'était nécessaire dans mon cas. Vous pouvez également utiliser un alias comme UPDATE db1.table AS tbl1 JOIN db2.table AS tbl2, puis référencez simplement les alias à travers le reste de la requête pour la concision. –

Questions connexes