mysql update문 질문입니다.
글쓴이: redpig / 작성시간: 토, 2011/06/18 - 3:06오전
update aTable a set a.column=(select b.column from bTable b where a.column = b.column);
이렇게 update를 하니 a.column = b.column인 a.column은 의도한데로 update가 되었는데
문제는 a.column != b.column인 a.column이 모두 NULL값으로 UPDATE되버리네요..
제가 의도한건 a.column != b.column인 a.column 데이터는 그대로 두고
a.column = b.column인 a.column 데이터만 update할려고 하는건데요..
위 update문을 어떻게 바꿔주면 될까요?
Forums:
보여주신 쿼리로 봐선 질문자의 의도가 조금
보여주신 쿼리로 봐선 질문자의 의도가 조금 애매합니다.
SET a.column = (SELECT b.column FROM bTable b WHERE a.column = b.column)
을 하면 이미 b.column과 같은 값을 가진 a.column 의 값을 똑같은 값으로 갱신한다는 건 이상한 것 같군요.
제 추측으론
SET a.column2 = (SELECT b.column2 FROM bTable b WHERE a.column1 = b.column1)
이걸 의도하신 거겠죠? =)
제 추측이 맞다면 의도하신 쿼리는 다음처럼 작성될 수 있습니다.
UDPATE aTable a, bTable b
SET a.column2 = (SELECT b.column2 FROM bTable b WHERE a.column1 = b.column1)
WHERE a.column1 = b.column1;
댓글 달기