카티션 곱(cartesian product)
- 가능한 모든 행을 조인
-- 조인을 할 때 조건을 걸지 않으면 맞지 않는 데이터들이 연결 될 수 있다
select e.first_name , e.job_id as 직원직업아이디, j.job_id as 직업아이디
-- 조인을 할 때 조건을 걸지 않으면 맞지 않는 데이터들이 연결 될 수 있다
from employees as e join jobs as j
order by e.job_id ;

동등 조인(inner join)
- 조인 조건이 정확히 일치하는 경우에 결과를 출력
-- on은 조인 전용 where문이다
-- 직원의 first_name과 직업명을 출력하시오
select e.first_name as 이름,
e.job_id as 직원직업아이디,
j.job_id as 직업아이디,
j.job_title as 직업명
from employees e
inner join jobs j
-- on은 조인 전용 where문이다
on e.job_id = j.job_id;

-- 직원의 first_name과 department_name을 출력하시오
select e.first_name as 이름,
d.department_name
from employees e
inner join departments d
on e.department_id = d.department_id ;

외부조인(outer join)
- 조인 조건이 정확히 일치하지 않아도 모든 결과를 출력
-- 다 보여줄 테이블을 기준으로 outer join
-- employees 직원을 다 보여줘야하기 때문에 left
-- department_id가 null인 경우에도 출력하시오
select e.first_name as 이름,
d.department_name
from employees e
-- 다 보여줄 테이블을 기준으로 outer join
-- employees 직원을 다 보여줘야하기 때문에 left
left outer join departments d
on e.department_id = d.department_id ;

자체조인 (self join)
- 자체 테이블에서 조인하고자 할 때 사용
-- 자체 조인
-- 직원의 first_name과 사수의 fir_name을 출력하시오
select e.first_name , e2.first_name
from employees e
inner join employees e2
on e.manager_id = e2.employee_id;

* 거의 대부분의 조인은 inner조인 (동등조인)을 사용한다.
'백엔드 > DB' 카테고리의 다른 글
| [MariaDB] MariaDB 학습 - 실습문제 - 조인 (0) | 2023.07.10 |
|---|---|
| [MariaDB] MariaDB 학습 - 서브쿼리 (0) | 2023.07.10 |
| [MariaDB] MariaDB 학습 - 키와 제약조건 (0) | 2023.07.10 |
| [MariaDB] MariaDB 학습 - 그룹 함수 (0) | 2023.07.10 |
| [MariaDB] MariaDB 학습 - SQL문 - 숫자 함수 (0) | 2023.07.07 |