2009-06-26 14 views
4

あるmysqlデータベースの列の内容を別のmysqlデータベースの同じテーブルにコピーしようとしています。mysqlでクロスデータベース更新を試すときに列が見つかりません

私が使用している:

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

が、私はエラー1054を取得しています:不明な列には、 'where句' に 'db2.table.id'。

どちらのテーブルにもidカラムがあるので、なぜうまくいかないのか分かりません。私は管理者としてログインしており、両方のデータベースに対する完全な権限を持っています。

答えて

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

ありがとうございます。私が望んでいたように正確に働いた。 –

+0

私の場合に必要だったように、ON-DB1.table.id = db2.table.idとdb1.table.id2 = db2.table.id2のようなものをマルチジョインに使うことができます。 また、UPDATE db1.table AS tbl1 JOIN db2.table AS tbl2のようなエイリアスを使用して、残りのクエリで別名のみを参照することもできます。 –

関連する問題