SMALL
안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
MULTIPLE JOIN
- 다중 조인
- 여러 테이블을 동시에 조인 처리
- ansi 표준 문법에서는 조인 되는 순서가 매우 중요
사원명 / 부서명 / 근무지역을 조회
employee.name / department.dept_title / location.local_name
select
*
from
employee e
left join department d on e.dept_code = d.dept_id
left join location l on d.location_id = l.local_code;
파란색 선을 기준으로 employee 테이블, department 테이블, location 테이블 입니다.
총 3개의 entity를 join 처리해서 하나의 relation으로 생성한 것을 확인할 수 있습니다.
※ employee 테이블에서 dept_code가 null인 하동운/이오리 사원의 경우에는 계속해서 기준 컬럼이 null 이기 때문에 연속적으로 left join 처리를 하지 않으면 제외되므로 유의해야 합니다!!
[오라클 전용문법 버전]
select
*
from
employee e, department d, location l
where
e.dept_code = d.dept_id(+)
and
d.location_id = l.local_code(+);
응용) 직급이 대리 또는 과장이면서, ASIA 지역에 근무하는 사원 조회
select
e.emp_name,
j.job_name,
l.local_name
from
employee e
left join job j on e.job_code = j.job_code
left join department d on e.dept_code = d.dept_id
left join location l on d.location_id = l.local_code
where
j.job_name in ('대리', '과장')
and
l.local_name like 'ASIA%';
[오라클 전용문법 버전]
select
e.emp_name,
j.job_name,
l.local_name
from
employee e, department d, job j, location l
where
e.job_code = j.job_code
and
e.dept_code = d.dept_id
and
d.location_id = l.local_code
and
j.job_name in ('대리', '과장')
and
l.local_name like 'ASIA%';
LIST
'DataBase > Oracle' 카테고리의 다른 글
SET OPERATOR) SET OPERATOR 조건, 집합 연산자 종류 (union, union all, intersect, minus) (0) | 2022.04.19 |
---|---|
JOIN/NON-EQUI-JOIN) NON-EQUI-JOIN (0) | 2022.04.19 |
JOIN/EQUI-JOIN) SELF JOIN (0) | 2022.04.19 |
JOIN/EQUI-JOIN) CROSS JOIN (0) | 2022.04.19 |
JOIN/EQUI-JOIN) INNER JOIN, OUTER JOIN, NATURAL JOIN(left outer join, right outer join, full outer join, using) (0) | 2022.04.18 |