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