우편번호 2개의 테이블로 비교 업데이트 (로우수가 다른 ㅠㅠ) 0 5 2,666

by 최진도 [2010.01.11 09:39:47]


DB.jpg (55,703Bytes)

안녕하십니까 .

다름이 아니라 A테이블을 B테이블 기준으로 업데이트 하고 싶습니다.

zip_code컬럼과 add1 컬럼이 같으면 add2 컬럼을 B_table 의 값으로

A_table 을 업데이트 시키고 싶습니다. ^^

도저히 방법이 안잡히네요

 

row수가 서로가 다르다보니 오류가 납니다.;;; (업데이트를 해보려니 ㅎ)

그리고 zip_code가 서로 같은 것이 다른개수로 있기 때문에

ex> a_table : 555-555 가 2개

       b_table : 555-555 가 3개

 

이런식의 문제를 어떻게 해결해야 할지 전문가님들의 도움이 절실히 필요하여

이렇게 글을 남깁니다. ㅠㅠ

by 마농 [2010.01.11 10:05:11]
zip_code 간 같은것은 당연히 여러개일 수 있을 것입니다.
그러나 zip_code도 같고 add1도 같은 경우가 여러건이라면 이는 상식적으로 불가능한 것입니다.
그림을 보면 666-666, 경기 에 해당하는 add2가 의정부시와 성남시 두개가 있는데
이걸 어찌 Update 하실려구요?

by 현 [2010.01.11 10:16:35]
업데이트 구문은 어렵지 않겠지만,
두개 이상이 나왔을 경우 어느 것으로 업데이트 할지는 업무적으로 기준을 정하셔야 합니다.
666-666 이라는 코드가 나왔을 때 의정부시로 할 것인지, 성남시로 할 것인지 아무거나 랜덤으로 하나만 할 것인지 안할 것인지 부터 결정하세요...

by 최진도 [2010.01.11 11:05:07]
설명이 제가 부족했나요? ^^;;
예를 들자면
개수와 상관없이 zip_code와 add1 이 같다면 그와 같았던 B테이블에서의 add2 값을 A테이블의 add2 값에다가 update를 시킬수가 없는건가요? ;; ^^

by 마농 [2010.01.11 11:15:28]
똑같은 설명이네요.
1 : 1 이 아닌 여러개의 결과가 나온다면 논리적으로 불가능합니다.

by finecomp [2010.01.11 17:40:05]
다른 사이트에도 의견을 올렸지만,
질문자분께는 당장의 업데이트가 문제겠지만 이런 오류데이터들을 쌓아 놓고 있는다는 것은 향후 지금의 구현 시 어려움과는 비교안되는 더 큰 장애가능요인을 안고가는 모양이 됩니다.

개발데이터 뿐 아니라 운영데이터라면 더더욱 각각의 중복오류 데이터들을 정리 후 업데이트 하시길 강력히 권장드립니다.

또한 주 목적이 우편번호정보를 관리하는 테이블이라면 향후 이런 일이 없게 우편번호(변경이력관리 불필요 시) 또는 우편번호+적용종료일+적용시작일(변경이력관리 필요 시) 정도로 PK나 Unique Index를 잡아두는 것도 권장드립니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입