OUTER JOIN은 한 쪽 테이블의 모든 행을 기준으로 다른 테이블을 JOIN합니다.

예를 들어, LEFT OUTER JOIN이라면 왼쪽 테이블의 모든 행을 기준으로 오른쪽 테이블을 JOIN합니다.

 

 


 

 

다음은 OUTER JOIN에 대한 쿼리입니다.

 

-- Oracle LEFT OUTER JOIN --

SELECT
  e.last_name AS 사원명,
  e.employee_id AS 사원번호,
  m.last_name AS 관리자명,
  m.employee_id AS 관리자사번
FROM
  employees e,
  employees m
WHERE
  e.manager_id = m.employee_id (+);
  
 
 
 -- Ansi LEFT OUTER JOIN --
 
SELECT
  e.last_name AS 사원명,
  e.employee_id AS 사원번호,
  m.last_name AS 관리자명,
  m.employee_id AS 관리자사번
FROM
  employees e LEFT OUTER JOIN employees m -- OUTER 키워드 생략 가능 --
  ON e.manager_id = m.employee_id;

 

RIGHT OUTER JOIN도 동일한 개념으로 동작합니다.

 

 

그런데 Ansi JOIN에서만 있는 FULL OUTER JOIN이 있습니다.FULL OUTER JOIN은 두 테이블의 모든 행을 결합하되, NULL값을 모두 포함하여 결합합니다.

 

-- Ansi FULL OUTER JOIN --

SELECT
  e.last_name AS 사원명,
  e.employee_id AS 사원번호,
  m.last_name AS 관리자명,
  m.employee_id AS 관리자사번
FROM
  employees e FULL OUTER JOIN employees m -- OUTER 키워드 생략 가능 --
  ON e.manager_id = m.employee_id;

 

 

 

 

'Database > SQL' 카테고리의 다른 글

정규화  (0) 2023.09.06
그룹화  (0) 2023.08.17
인라인 뷰  (0) 2023.08.17
외래 키  (1) 2023.08.16
데이터 사전  (0) 2023.08.16

+ Recent posts