메뉴 건너뛰기

조회 수 8145 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

중복 조인을 피하기 위한 update 방법에 대해 알아보겠습니다.

 
    UPDATE TotalPoint T
          SET usePoint = (SELECT usePoint
                                     FROM UserPoint U WHERE U.userId = T.userId),
              totPoint = totPoint + (SELECT usePoint
                                                FROM UserPoint U WHERE U.userId = T.userId)
        FROM userId = 'testUser'

이런식으로 서브쿼리를 2번 같은 내용으로 사용하는 것은 비효율적이다.
만약에 더 많은 컬럼값을 Update해야 한다면 중복이 더 많아질 것이다.

Merge를 사용하면 이러한 중복을 줄일 수 있다.

 

    MERGE INTO TotalPoint T
     USING (
                     SELECT userId,
                               usePoint
                        FROM UserPoint U
                      WHERE userId = 'testUser'
               ) U
         ON (T.userId = U.userId)
     WHEN MATCHED THEN
     UPDATE SET T.totPoint = T.totPoint + U.usePoint,
                T.userPoint = U.usePoint

 

이렇게 Merge를 사용하면 중복조인의 문제를 피할 수 있어 좋다.

오라클에서, '중복조인 방지를 위한 UPDATE'에 대한 더 자세한 글은 다음 링크에서 확인할 수 있다.
http://scidb.tistory.com/111


  1. 피봇(Pivot)을 이용하여 행(Row)을 열(Column)로 바꾸기

    Date2016.12.08 Views12679
    Read More
  2. 테이블 생성(다중 PK)

    Date2016.09.12 Views7936
    Read More
  3. 쿼리 파싱 시간 측정 - query parsing time

    Date2016.12.08 Views7704
    Read More
  4. 컬럼의 값 만큼 행(Row)을 늘리기

    Date2016.12.08 Views14101
    Read More
  5. 초 이하 단위 시간 얻어오기

    Date2016.09.12 Views7906
    Read More
  6. 조건절에 WHERE 1=1, WHERE 1=0 사용하여 쿼리 간편하게 사용하기

    Date2016.08.29 Views9621
    Read More
  7. 제로보드 reg_date 필드 date 형으로 변환하기

    Date2016.09.12 Views7178
    Read More
  8. 자동증가 SEQUENCE 생성

    Date2016.09.12 Views7249
    Read More
  9. 오라클에서 레코드 값이 없을때

    Date2016.12.08 Views13469
    Read More
  10. 오라클] 숫자 체크 방법 (IS_NUMBER, IS_NUMERIC)

    Date2017.01.20 Views8652
    Read More
  11. 오라클11g DB 생성

    Date2016.12.08 Views9727
    Read More
  12. 오라클(PL/SQL) 미리 정의된 예외처리

    Date2016.12.08 Views7215
    Read More
  13. 오라클(Oracle) 에서 varchar 와 varchar2 의 차이점은 무엇인가

    Date2016.08.30 Views8029
    Read More
  14. 오라클(Oracle) 대용량 데이터 토드(Toad)를 이용해서 넣기

    Date2016.08.30 Views8032
    Read More
  15. 오라클(Oracle) SUBSTR 함수로 문자열을 다양하게 자르는 방법

    Date2016.08.30 Views7827
    Read More
  16. 오라클 해당 월 의 맨첫날 ~ 마지막 일 가져 오는 쿼리

    Date2016.12.08 Views8417
    Read More
  17. 오라클 테이블 생성 스크립트 DDL 추출 - 깔끔하게 Table 전부 추출(Export)하기

    Date2016.12.08 Views12539
    Read More
  18. 오라클 인스턴스 클라이언트(oracle instant client)

    Date2016.09.12 Views10982
    Read More
  19. 오라클 웹로직 12.1.3 설치 방법

    Date2016.09.21 Views9904
    Read More
  20. 오라클 암호를 분실한 경우 접속 방법

    Date2016.09.21 Views7274
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved