Legacy Syntax
Oracle (+) 표기 해석
(+)는 NULL이 채워질 수 있는 비보존 테이블 쪽에 붙습니다. 새 쿼리는 ANSI JOIN이 더 명확합니다.
보존되는 행
매칭되는 행
NULL로 채워진 값
LEFT JOIN
오른쪽에 (+)
u.user_id = o.user_id(+)는 users를 보존하고 orders를 NULL 가능 쪽으로 둡니다.
RIGHT JOIN
왼쪽에 (+)
u.user_id(+) = o.user_id는 orders를 보존하고 users를 NULL 가능 쪽으로 둡니다.
전통 표기
의미
권장 해석
a.id = b.id(+)
A 보존
A LEFT JOIN B
a.id(+) = b.id
B 보존
A RIGHT JOIN B
레거시 SQL을 읽을 때 의미를 해독하는 용도로 익히고, 새로 작성할 때는 ON 절이 있는 ANSI JOIN을 쓰는 편이 안전합니다.