n인 테이블에 update...
아... 오라클경험은 이제 2년인것도 있고.. 최근엔 db에 대해 고난이도 쿼리를 안해서..
개발 짬밥이 부끄럽게 해결책을 못찾겠군요.
SQL SERVER와.. 일괄 UPDATE는 많이 틀리네요 ㅠㅠ
현재 테이블 구조를 고치게 되면서.. 원래 1:n 인 마스터와 디테일 테이블에..
마스터 테이블 키가 바뀌어 디테일 테이블에 일단 컬럼 한개 추가해서
바뀐 키를 업데이트할려고 하는게 주 일입니다.
바꿀때 조건은 마스터테이블의 키를 가지고 하는거구요.
일단 아래와 같이 쿼리를 짰는데..
UPDATE detailTable A
SET A.newID = (SELECT B.newID FROM
masterTable B WHERE A.oldID= B.oldID
)
로 하니... 하위쿼리에서 2개의 이상의 행이 리턴되었다고 에러납니다.
음..그렇겠죠.. 마스터테이블에서 하위 테이블로 가는거니깐..
그래서 서브쿼리안에 DISTINCT 혹은 GROUP BY를 넣어도.. 마찬가지입니다.
이건 첨엔 이해가 안갔는데... 구조상 디테일테이블의 모든 행을 긁는 구조다
보니 서브쿼리에서 제가 그룹바이등을 넣어도.. 실제로 그렇게 동작은 안된게
아닐까.. 생각드는데요.
이 경우 어떻게 쿼리를 해야할지... 고수님들의 조언을 바랍니다 (__)