2011-01-31 10 views
1

동일한 구조를 가진 두 개의 테이블이 있습니다. 이런mysql - 테이블 간의 행을 업데이트하십시오.

Name - DOB - id 
John - xxxx - 344 

NEW_TABLE 외관 : OLD_TABLE

는 다음과 같이 (예를 들면, 실제적인 테이블) 보인다. NEW_TABLE 채우지 DOB 열이

Name - DOB - id 
John - 1980 - 344 

를 ID 필드 (고유)이며 나머지 구조는 테이블간에 동일합니다. old_table의 DOB 필드를 ID 필드가 같은 new_table의 값으로 업데이트하려고합니다 (위의 예제에서 모든 행과 ID에 대해 'id'= 344 등).

내가 사용하는 생각 : OLD_TABLE (DOB) SELECT DOB INTO INSERT를

하지만 그때 내 MySQL의 지식이 꺼져 산책로 WHERE ... NEW_TABLE FROM. 나도 INSERT를 사용해야합니까? 아니면 여기서 UPDATE를 사용할 수 있습니까? 그리고 ID 필드 = new_table의 ID 필드 인 old_table에서 DOB 값만 가져 오는 방법은 무엇입니까?

감사합니다 ..

답변

4
UPDATE old_table, new_table 
    SET old_table.DOB = new_table.DOB 
    WHERE old_table.id = new_table.id 

EDIT를 작동합니다 : OP

의 의견에 기반
UPDATE old_table, new_table 
    SET old_table.DOB = new_table.DOB 
    WHERE old_table.id = new_table.id 
     AND old_table.DOB = 'xxxx' 
     AND old_table.field4 = '-' 
+0

이 위대한 작동하지만 만약 내가 단지 행을 업데이 트하려는 경우 old_table.DOB = 'xxxx'AND old_table.field4 = '-'? – themerlinproject

+0

@ user410341 : 단순히 WHERE 절에 조건을 추가하십시오. 내 편집을 참조하십시오. –

0

업데이트를 사용 DOB은 = 설정 하다며 UPDATE old table (newTable에서 DOB를 선택 NT를 어디 nt.id = ot.id) 같은 뭔가

관련 문제