SQL

[SQL] 외부 조인 주의해야할 점

bornsoon 2024. 9. 30. 17:42

외부 조인 (OUTER JOIN)을 할 때, 조인조건에 유의해야 한다.

조인 조건을 만족하지 않는 행도 새로운 재료 집합에 포함되기 때문

 

  • LEFT OUTER JOIN (LEFT JOIN)은 왼쪽에 무조건 1행 이상이 나옴 (INNER JOIN 탈락행의 오른쪽에느 NULL 값이 추가됨)
  • RIGHT OUTER JOIN (RIGHT JOIN)은 오른쪽에 무조건 1행 이상이 나옴

 

SELECT e.last_name, e.job_id, e.salary, d.department_name
FROM employees e RIGHT JOIN departments d
  ON e.department_id = d.department_id
 AND LENGTH(d.department_name) > 10;  
-- JOIN 조건에서 탈락해도 RIGHT JOIN이기 때문에 오른쪽 테이블은 무조건 한 행이상 나와야되기 때문에 서브쿼리로 먼저 탈락시킨 다음에 처리해줘야함


( *(+) : Oracle의 RIGHT OUTER JOIN 문법 )
SELECT e.last_name, e.job_id, e.salary, d.department_name
FROM employees e, departments d
WHERE e.department_id(+) = d.department_id
  AND LENGTH(d.department_name(+)) > 10;
728x90

'SQL' 카테고리의 다른 글

[SQL] JOIN + USING  (0) 2024.10.01
[SQL] 서브쿼리의 결과값이 NULL이 될 경우  (0) 2024.09.30
[SQL] 조건부 표현식 CASE, DECODE(오라클 전용)  (2) 2024.09.27
[SQL] SQL의 NULL  (1) 2024.09.26
[Oracle] 날짜 포맷 형식  (0) 2024.09.26