카테고리 없음

INNER JOIN, OUTER JOIN , 서브쿼리

MR 손 2010. 5. 4. 00:30

--innner join on 사용

select *

from employees a inner join jobs j

on a.job_id = j.job_id

where a.job_id like '%A%';

 

--inner join using 사용

select *

from employees a inner join jobs j

using (job_id)

where job_id like '%A%';

 

--가존 조인 outer 대신

select *

from employees emp , job_history jhis

where emp.employee_id = jhis.employee_id(+);

 

--left outer join on 사용

select *

from employees emp left outer join job_history jhis

on emp.employee_id = jhis.employee_id

where emp.employee_id like '%1%';

 

--right outer join using 사용

select *

from employees emp right outer join job_history jhis

using (employee_id);

 

--full outer join on 사용

select *

from job_history jhis full outer join employees emp

on emp.employee_id = jhis.employee_id

where emp.employee_id like '%1%';

 

--full outer join using 사용

select *

from job_history jhis full outer join employees emp

using (employee_id);

 

-- cross join on 카타시안 프로덕트

select *

from employees emp cross join departments dep

on emp.DEPARTMENT_ID = dep.DEPARTMENT_ID;

 

--서브쿼리 IN 연관성 없는 서브쿼리

select count(*)

from employees

where department_id IN (

select department_id

from departments

where manager_id IS NOT NULL

);

 

--서브쿼리 EXISTS 연관성 있는 서브쿼리

select count(*)

from employees emp

where EXISTS (

select 1

from departments dep

where dep.manager_id IS NOT NULL

AND emp.department_id = dep.department_id

);