회원테이블 2개의 컬럼에 업데이트를 하려구 하는데요!!
업데이트 조건은 1:1 매핑 업데이트 입니다. 회원테이블에 기본키는 user_id 이고, 조인이 걸릴 테이블에는 user_id가 없고, 제 3의 테이블에서
또다시 조인을 걸어서 user_id를 가져오게 됩니다.
문제가 되는건 회원테이블과 조인이 걸릴 테이블에 user_id가 있으면 상관이 없지만, 제 3의 테이블에서 user_id가 있으니 이 user_id와 어떻게 조인을
걸어야 할지 난감한 상황입니다.(실력부족 ㅠ.ㅠ)
제가 사용하는 쿼리입니다.
UPDATE USER_INFO X SET (PROF_CODE, USER_CODE) = (
SELECT PROF_CODE, USER_CODE
FROM
(
SELECT C.CUST_IDX
, D.USER_ID
, MAX(A.PROF_CODE) PROF_CODE
, MAX(A.USER_CODE) USER_CODE
, MAX(D.ORDERNUMBER) ORDERNUMBER
FROM TEMP_SAPUSERINFOKOR A
, ACC_INVOICE B
, ACC_USER_ORDER C
, ORDER_COMM D
WHERE A.INV_NUM = B.INVOICE_NUM
AND B.ACC_IDX = C.ACC_IDX
AND B.CUST_IDX = C.CUST_IDX
AND C.ORDERNUMBER = D.ORDERNUMBER
AND PROF_CODE IS NOT NULL
AND USER_CODE IS NOT NULL
GROUP BY C.CUST_IDX, D.USER_ID
)
)
WHERE X.USER_ID = ?
위의 쿼리중 조인되어서 USER_ID를 가져오는 테이블이 ORDER_COMM 테이블에서 가져옵니다.
USER_INFO 테이블과 1:N 관계여서 MAX데이터로 한개의 데이터를 가져오구요!!
도와주십시요^^* 부탁드리겠습니다~~ |