ABAP

FULL OUTER JOIN vs LEFT JOIN — 차이점 #shorts #SAP #ABAP

ABAP SQL JOIN 종류 정리

ABAP Open SQL에서 자주 쓰는 JOIN은 세 가지입니다. INNER JOIN은 양쪽 테이블에 모두 존재하는 행만, LEFT OUTER JOIN은 왼쪽 테이블 전체 + 오른쪽 매칭, FULL OUTER JOIN은 양쪽 전체 행을 결과에 포함합니다.

LEFT OUTER JOIN 기본 패턴

주문(VBAK)과 아이템(VBAP) 테이블을 조인할 때, 아이템 없는 주문도 포함하려면 LEFT OUTER JOIN을 씁니다.

SELECT v~vbeln, p~posnr, p~matnr
  FROM vbak AS v
  LEFT OUTER JOIN vbap AS p
    ON v~vbeln = p~vbeln
  INTO TABLE @DATA(lt_orders).

FULL OUTER JOIN 패턴

FULL OUTER JOIN은 양쪽 테이블 중 어느 한 쪽에만 존재하는 행도 모두 가져옵니다. 데이터 정합성 검사나 두 테이블 차이 분석에 유용합니다.

SELECT a~id, a~value AS val_a,
       b~value AS val_b
  FROM table_a AS a
  FULL OUTER JOIN table_b AS b
    ON a~id = b~id
  INTO TABLE @DATA(lt_diff)
  WHERE a~id IS NULL OR b~id IS NULL.

언제 무엇을 쓸까

INNER JOIN은 양쪽 모두 데이터가 있는 경우에만 결과가 필요할 때, LEFT OUTER JOIN은 기준 테이블 전체 + 옵션 조인, FULL OUTER JOIN은 두 테이블 간 불일치 행을 찾을 때 선택합니다. NULL 비교로 미매칭 행만 필터링하는 패턴이 실무에서 가장 흔합니다.

핵심 한 줄

데이터 불일치 검사엔 FULL OUTER JOIN + NULL 필터, 단순 1:N 조회엔 LEFT OUTER JOIN이 맞다.

댓글 0

아직 댓글이 없습니다.