2009-06-26 4 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와 같은 별칭을 사용할 수 있습니다. 그런 다음 별칭을 사용하여 나머지 쿼리를 통해 간결성을 참조 할 수 있습니다. –