반응형
--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 |
댓글