세개의 테이블 merge 문의 드립니다. 0 7 143

by naverTT [2018.12.06 15:16:46]


테이블문의.PNG (28,735Bytes)

테이블 구조는 파일로 첨부하였습니다.

노랗게 표현된 부분을 연결하고 싶은데 연결고리가 없습니다 ㅠㅠ

하고자하는 목적은

table1.oldname 이 변경되면, 이게 변경된 내용인지를 가져다가 table2.names를 업데이트 해야합니다.

그래서 어떤것이 변경된 것인지를 체크하기 위해서 table1.oldname 을 table3.newid랑 연결하고 싶습니다.

컬럼추가나 변경은 어려운 상황입니다.

답변 부탁 드립니다 ㅠㅠ

by 마농 [2018.12.06 15:35:05]

그림과 설명이 일치하지 않네요?
설명에는 "table3.oldid랑 연결하고 싶습니다." 라고 되어 있는데?
그림에는 "table3.oldid" 가 없네요?


by naverTT [2018.12.06 15:39:54]

newid 인'데 제가 잘못 적었나봅니다. 수정하였습니다!


by 마농 [2018.12.06 16:15:43]

newid 가 비어 있네요?


by naverTT [2018.12.06 16:17:20]

네 현재 비어있습니다.

있는 데이터를 일괄적으로 밀어넣고, 그 후에도 사용하고 싶습니다.


by 마농 [2018.12.06 16:20:59]

tab33.newid 에 tab1.oldid 를 넣고 싶다는 건가요?
모호하게 적어 놓고 계속 말바꾸기 식으로 질문 하시면 안됩니다.
정확한 정보를 정리해서 주세요.
처음부터 아무런 연결고리가 없는 걸 연결한다는게 말이 안되는 거죠.


by naverTT [2018.12.06 16:26:24]

네맞습니다. table3.newid에 table1.oldid 를 밀어 넣고 싶습니다.

그렇게 해두면 나중에 수정건에 대해 찾을 수 있지 않을까 생각됩니다.


by 마농 [2018.12.06 16:30:27]
-- 1. 조회 --
SELECT a.oldid
     , a.oldname
     , b.locale_code
     , b.names
     , c.pos_locale
     , c.pos_code
     , c.newid
  FROM tab1 a
     , tab2 b
     , tba3 c
 WHERE a.oldname = b.names
   AND b.locale_code = c.pos_locale
;
-- 2. 갱신 --
UPDATE tba3 c
   SET newid = (SELECT a.oldid
                  FROM tab1 a
                     , tab2 b
                 WHERE a.oldname = b.names
                   AND b.locale_code = c.pos_locale
                )
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입