SQL Plus
SQL Developer
초록색 + 버튼 클릭
구문 실행
행 번호 표시하기
여러 테이블의 데이터를 한꺼번에 출력하는 문법
[기본 조인 문법] : on절 조인
select 테이블a.컬럼1, 테이블b.컬럼2
from 테이블a join 테이블b
on 테이블a.컬럼3 = 테이블b.컬럼4
[where 조건문]
[group by 컬럼명]
[having 조건문]
[order by 컬럼명 asc | desc];
- 역모델링
다음
다음
다음
완료
예제1) employees 테이블과 departments 테이블을 사용해서 직원 정보(employee_id, last_name, salary, department_id)와 직원이 소속된 부서이름(department_name)을 함께 출력하시오.
select employee_id, last_name, salary, employees.department_id, department_name
from employees join departments
on employees.department_id = departments.department_id;
(==)
select employees.employee_id, employees.last_name, employees.salary, employees.department_id, departments.department_name
from employees join departments
on employees.department_id = departments.department_id;
(==)
select e.employee_id, e.last_name, e.salary, e.department_id, d.department_name
from employees e join departments d
on e.department_id = d.department_id;
예제2) employees 테이블과 departments 테이블을 사용해서 부서 정보(department_id, department_name, manager_id)와 부서의 매니저 이름(last_name)을 함께 출력하시오.
select d.department_id, d.department_id, d.manager_id, e.last_name
from departments d join employees e
on d.manager_id = e.employee_id;
예제3) departments 테이블과 locations 테이블을 사용해서 부서 정보(department_id, department_name, location_id)와 부서의 위치 정보(city, street_address)를 함께 출력하시오.
select d.department_id, d.department_name, d.location_id, l.city, l.street_address
from departments d join locations l
on d.location_id = l.location_id;
예제4) employees 테이블과 jobs 테이블을 사용해서 직원 정보(employee_id, last_name, salary, job_id)와 직원의 담당 업무명(job_title)을 함께 출력하시오.
select e.employee_id, e.last_name, e.salary, e.job_id, j.job_title
from employees e join jobs j
on e.job_id = j.job_id;
테이블 수 | 조인조건 수 |
---|---|
2 | 1 |
3 | 2 |
n | n-1 |
예제5) employees, departments, locations 테이블을 사용해서 직원 정보(employee_id, last_name, salary, department_id)와 직원이 소속된 부서 정보(department_name, location_id)와 부서의 위치 정보(city, street_address)를 함께 출력하시오.
select e.employee_id, e.last_name, e.salary, e.department_id, d.department_name, d.location_id, l.city, l.street_address
from employees e join departments d
on e.department_id = d.department_id
join locations l
on d.location_id = l.location_id;
예제6) employees, jobs, departments 테이블을 사용해서 직원 정보(employee_id, last_name, job_id)와 직원의 담당 업무명(job_title)과 직원이 소속된 부서 정보(department_id, department_name)를 함께 출력하시오.
select e.employee_id, e.last_name, e.job_id, j.job_title, d.department_id, d.department_name
from employees e join jobs j
on e.job_id = j.job_id
join departments d
on e.department_id = d.department_id;
하나의 테이블을 마치 다른 테이블인듯 테이블 alias를 다르게 부여해서 자기 자신 테이블과 조인하는 유형
예제7) employees 테이블로부터 직원의 정보(employee_id, last_name, mangager_id)와 그 직원의 매니저 이름(last_name)을 함께 출력하시오.
select e1.employee_id, e1.last_name, e1.manager_id, e2.last_name
from employees e1 join employees e2
on e1.manager_id = e2.employee_id;
연습문제)
select e.employee_id, e.last_name, e.salary, e.department_id, d.department_name
from employees e join departments d
on e.department_id = d.department_id;
select e1.last_name "Employee", e1.employee_id "Emp#", e2.last_name "Manager", e1.manager_id "Mgr#"
from employees e1 join employees e2
on e1.manager_id = e2.employee_id;
추가 연습 문제)
employees 테이블, departments 테이블, locations 테이블을 사용하여 Toronto에 근무하는 사원의 last_name, job_id, department_id, department_name을 출력하는 구문을 작성하시오.
select e.last_name, e.job_id, e.department_id, d.department_name
from employees e join departments d
on e.department_id = d.department_id
join locations l
on d.location_id = l.location_id
where l.city='Toronto';