백엔드/DB

[MariaDB] MariaDB 학습 - 실습문제 - 조인

tero1115 2023. 7. 10. 14:23

-- 문제1) 사원들의 이름, 부서번호, 부서명을 출력하라

 

-- 문제2) 30번 부서의 사원들의 이름,직업,부서명을 출력하라

 

-- 문제3) 커미션을 받는 사원의 이름, 직업, 부서번호,부서명을 출력하라

 

-- 문제4) 지역번호 2500 에서 근무하는 사원의 이름, 직업,부서번호,부서명을 출력하라

 

-- 문제5) 이름에 A가 들어가는 사원들의 이름과 부서이름을 출력하라

 

-- 문제6) 사원이름과 그 사원의 관리자 이름을 출력하라

 

-- 문제7) 사원이름과 부서명과 월급을 출력하는데 월급이 3000 이상인 사원을 출력하라

 

-- 문제8) TJ 이란 사원보다 늦게 입사한 사원의 이름과 입사일을 출력하라

-- cross join

 

-- 문제9) 급여가 3000에서 5000사이인 사원의 이름과 소속부서명 출력하라

 

-- 문제10) ACCOUNTING 부서 소속 사원의 이름과 입사일 출력하라

 

-- 문제11) 급여가 3000이하인 사원의 이름과 급여, 근무지를 출력하라

 

 

 

 

 


 

-- 문제1) 사원들의 이름, 부서번호, 부서명을 출력하라

select e.first_name , e.department_id , d.department_name

from employees e

inner join departments d

on e.department_id = d.department_id ;

 

-- 문제2) 30번 부서의 사원들의 이름,직업,부서명을 출력하라

select e.first_name ,j.job_title , d.department_name

from employees e

inner join departments d

on e.department_id = d.department_id

inner join jobs j

on e.job_id = j.job_id

where e.department_id = 30;

 

-- 문제3) 커미션을 받는 사원의 이름, 직업, 부서번호,부서명을 출력하라

select e.first_name ,j.job_title ,e.department_id , d.department_name

from employees e

inner join departments d

on e.department_id = d.department_id

inner join jobs j

on e.job_id = j.job_id

where commission_pct is not null;

 

-- 문제4) 지역번호 2500 에서 근무하는 사원의 이름, 직업,부서번호,부서명을 출력하라

select e.first_name ,j.job_title ,e.department_id , d.department_name

from employees e

inner join departments d

on e.department_id = d.department_id

inner join jobs j

on e.job_id = j.job_id

inner join locations l

on d.location_id = l.location_id

where l.location_id = 2500;

 

-- 문제5) 이름에 A가 들어가는 사원들의 이름과 부서이름을 출력하라

select e.first_name , d.department_name

from employees e

inner join departments d

on e.department_id = d.department_id

where first_name like '%A%';

 

-- 문제6) 사원이름과 그 사원의 관리자 이름을 출력하라

select e.first_name , e2.first_name

from employees e

inner join employees e2

on e.manager_id = e2.employee_id;

 

-- 문제7) 사원이름과 부서명과 월급을 출력하는데 월급이 3000 이상인 사원을 출력하라

select e.first_name ,j.job_title , d.department_name

from employees e

inner join departments d

on e.department_id = d.department_id

inner join jobs j

on e.job_id = j.job_id

where e.salary >= 3000;

 

-- 문제8) TJ 이란 사원보다 늦게 입사한 사원의 이름과 입사일을 출력하라
-- cross join
select e.first_name , e.hire_date
from employees e
join employees e2
on e2.first_name ='TJ'
where e.hire_date > e2.hire_date ;

 

-- 문제9) 급여가 3000에서 5000사이인 사원의 이름과 소속부서명 출력하라

select e.first_name , d.department_name

from employees e

inner join departments d

on e.department_id = d.department_id

where salary >= 3000

and salary <= 5000;

 

-- 문제10) ACCOUNTING 부서 소속 사원의 이름과 입사일 출력하라

 

select e.first_name , e.hire_date

from employees e

inner join departments d

on e.department_id = d.department_id

where d.department_name = 'ACCOUNTING';

 

-- 문제11) 급여가 3000이하인 사원의 이름과 급여, 근무지를 출력하라

select e.first_name, e.salary , l.street_address

from employees e

inner join departments d

on e.department_id = d.department_id

inner join locations l

on d.location_id = l.location_id

where salary <= 3000;