본문 바로가기
DataBase

[postgreSQL] SELF JOIN

by 바까 2021. 9. 14.
반응형
--4)SELF조인
--같은 테이블 끼리 특정 컬럼을 기준으로 매칭되는 컬럼을 출력하는 조인
--즉 같은 테이블의 데이터를 각각의 집합으로 분류한 후 조인
--동일한 테이블이지만 각각의 다른 집합으로 구성해놓고그 안에서 원하는 정보 추출
SELECT E.FIRST_NAME || '' || E.LAST_NAME AS EMPLOYEE,
	   M.FIRST_NAME || '' || M.LAST_NAME AS MANAGER
FROM EMPLOYEE E
INNER JOIN EMPLOYEE M 
ON M.EMPLOYEE_ID = E.MANAGER_ID 
ORDER BY MANAGER;
--결과:각 직원의 상위 관리자를 출력함
-- 	  최고 관리자인 windy hays는 결과 집합에 포함되지 않음


--SELF LEFT OUTER 조인
SELECT E.FIRST_NAME || '' || E.LAST_NAME AS EMPLOYEE,
	   M.FIRST_NAME || '' || M.LAST_NAME AS MANAGER
FROM EMPLOYEE E
LEFT OUTER JOIN EMPLOYEE M 
ON M.EMPLOYEE_ID = E.MANAGER_ID 
ORDER BY MANAGER;
--결과:각 직원의 상위 관리자를 출력하면서 모든 직원을 출력함
-- 	  최고 관리자인 windy hays는 결과 집합에 출력됨

--부정형 조건 
select f1.title, f2.title, f1.length
from film f1
inner join film f2			--self조인
on f1.film_id <> f2.film_id --서로 다른 영화인 집합을 출력
and f1.length = f2.length;	--영화의 상영시간은 동일하면서

--셀프조인을쓰이않고 조회하면
select f1.title, f1.title, f1.length
from film f1
where f1.length = f1.length 
and f1.film_id <> f1.film_id; --결과가 안나옴
반응형

'DataBase' 카테고리의 다른 글

[postgreSQL] CROSS JOIN  (0) 2021.09.14
[postgreSQL] FULL OUTER JOIN  (0) 2021.09.14
[postgreSQL] OUTER JOIN  (0) 2021.09.14
[postgreSQL] INNER JOIN  (0) 2021.09.14
[postgreSQL]JOIN 이란?  (0) 2021.09.14

댓글