2011-10-11 7 views
3

나는 구문 함께 할 수있는 뭔가가 알고 있지만, 나는 다음을 수행 할 수있는 방법을 찾고 있어요 :MySQL의 업데이트 쿼리는 문제

UPDATE modules 
SET ServerID = boards.ServerID 
FROM boards,modules 
WHERE modules.ID = boards.ID 

이 나던 작품. 나는 SELECT위한 것입니다 FROM

FROM 포함되지 않습니다 MySQL의

답변

3

이 시도 :

UPDATE boards,modules 
SET modules.ServerID = boards.ServerID 
WHERE modules.ID = boards.ID 

http://dev.mysql.com/doc/refman/5.0/en/update.html

에서 MYSQL의 UPDATE 구문을 읽고 당신은 또한 여러 테이블을 포함하는 UPDATE 작업을 수행 할 수 있습니다 ....

UPDATE items,month SET items.price=month.price 
WHERE items.id=month.id; 

앞의 예는 쉼표 연산자를 사용하는 내부 조인을 보여 주지만 여러 테이블 UPDATE 문은 LEFT JOIN과 같은 SELECT 문에서 허용되는 모든 유형의 조인을 사용할 수 있습니다.

+0

위해 고쳐 – Phil

+0

넵 고칠 방지하기 위해'modules'와'ServerID' 접두사해야 명확성 – Gajahlemu

+0

+1 아름답게 작동합니다 : http://www.sqlize.com/F5Wla424tg – mellamokb

1
UPDATE modules 
SET ServerID = (SELECT b.ServerID FROM boards b WHERE b.ID = modules.ID) 
+0

한 작품 아름답게 : http://www.sqlize.com/6H3lvZk80B 당신은 아마 모호한 열 참조 – mellamokb

-1

UPDATE 구문을 사용하고 있습니다. 당신이 결합 할 경우

두 :

UPDATE modules SET ServerID = (SELECT boards.ServerID FROM boards WHERE boards.ID = modules.ID) 
+0

감사합니다 @ Phhil – galchen

1
UPDATE modules 
INNER JOIN boards 
ON modules.ID = boards.ID 
SET modules.ServerID = boards.ServerID 
+0

+1 아름답게 작동합니다. http://www.sqlize.com/Ai4Bo7cixg – mellamokb