Cross Join
select * from table1, table2
join쑰건 μλ΅. λ°μΉ΄λ₯΄νΈ κ³±.
Natural Join
select * from departments
natural join locations
- λ ν μ΄λΈμ κ³΅ν΅ μ»¬λΌμ΄ μλ κ²½μ° λ¬΅μμ μΌλ‘ μ‘°μΈ.
- 컬λΌλͺ κ²Ήμ³μ μλ±ν κ²°κ³Όκ° λμ¬ μ μμΌλ μ£Όμ.
Inner Join
select * from employees e
inner join departments d
on(e.department_id = d.department_id)
innerν€μλ μλ΅ κ°λ₯.- ANSI νμ€ λ¬Έλ².
onμ μ μ‘°μΈ μ‘°κ±΄ μμ±.(whereμ μλ μμ± κ°λ₯)- 컬λΌλͺ
μ΄ κ°μ κ²½μ° λ€μκ³Ό κ°μ΄
usingμ μ μ¬μ©ν΄λ 무방ν¨.
select * from employees
inner join departments
using(department_id)
Oracle λ°©μ
select t1.col1, t1.col2, t2.col1
from table1 t1, table2 t2
where t1.col3 = t2.col3
fromμ μ νμλ‘ νλ ν μ΄λΈμ λͺ¨λ μ λλ€. (aliasμ¬μ© κ°λ₯)- μ μ ν 쑰건μ
whereμ μ λΆμ¬νλ€.
Outer Join
select *
from employees e
left outer join departments d
on(e.department_id = d.department_id)
left(right) outer join: μΌμͺ½(μ€λ₯Έμͺ½)μ λͺ¨λ ννμ κ²°κ³Ό ν μ΄λΈμ λνλ¨.full outer join: μμͺ½ λͺ¨λ κ²°κ³Ό ν μ΄λΈμ λνλ¨.outerν€μλ μλ΅ κ°λ₯.
Self Join
select e.name as 'μ¬μ μ΄λ¦', m.name as 'μμ¬ μ΄λ¦'
from employees e
join employees m
on(e.manager_id = m.employee_id)
- κ°μ ν
μ΄λΈμ
aliasλ€λ₯΄κ² μ£Όκ³join