JOIN?
Categories: Database
β JOIN
- 2κ°μ ν μ΄λΈμ λν΄μ μ°κ΄λμ΄μλ ννμ κ²°ν©νμ¬ μλ‘μ΄ λ¦΄λ μ΄μ μ λ°ννλ κ².
- ν¬κ² 보면
INNER JOIN
κ³ΌOUTER JOIN
μ΄ μλ€.
κ·Έ μ μ DB μ©μ΄μ 리λ₯Ό κ°λ¨ν νκ³ μ§λκ°κ² λ€.
-
β ν μ΄λΈ : νκ³Ό μ΄λ‘ μ΄λ£¨μ΄μ§ λ°μ΄ν°μ μ§ν©. κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμλ μ¬κΈ°μ μ μ½μ μΆκ°ν΄μ 릴λ μ΄μ μ΄λΌκ³ λΆλ¦.
- λͺ¨λ κ°μ μ μΌν κ°μ κ°μ§λ€
- νλμ 릴λ μ΄μ μμ μ€λ³΅λλ νμ΄ μ‘΄μ¬ν΄μλ μλλ€.
- μ λ 쑰건μ μΆ©μ‘±νμ¬μΌ 릴λ μ΄μ μ΄ λλ€. λ°λΌμ λͺ¨λ 릴λ μ΄μ μ ν μ΄λΈμ΄μ§λ§ λͺ¨λ ν μ΄λΈμ΄ 릴λ μ΄μ μ μλλ€.
- β ν : λ°μ΄ν° μ€ κ°λ‘λ‘ λ¬Άμ λ°μ΄ν°μ μ μλ―Ένλ€. νν λλ λ μ½λλΌκ³ λΆλ₯Έλ€.
- β μ΄ : λ°μ΄ν° μ€ μΈλ‘λ‘ λ¬Άμ λ°μ΄ν°μ μ μλ―Ένλ€. λ³΄ν΅ μμ±μ μλ―Ένλ€.
- β μ€ν€λ§ : λ°μ΄ν°λ² μ΄μ€μ ꡬ쑰λ₯Ό κΈ°μ ν κ²μ΄λ€.
- λ°μ΄ν° λ μ½λμ ν¬κΈ°
- ν€μ μ μ
- λ μ½λ κ° κ΄κ³
- μ¬μ©μμ κ΄μ μ λ°λΌ μΈλΆ, κ°λ
, λ΄λΆ μ€ν€λ§λ‘ ꡬλΆνλ€.
- μΈλΆ μ€ν€λ§ : μ¬μ©μμ μ μ₯μμ μ μν λ Όλ¦¬μ ꡬ쑰, μ΄λ€ νμ, ꡬ쑰, νλ©΄μ ν΅ν΄ 보μ¬μ€ κ²μΈκ°μ λν λͺ μΈ.
- κ°λ μ€ν€λ§ : DBλ₯Ό μ μν μ€ν€λ§. μΌλ°μ μΌλ‘ ν΅μ μ€ν€λ§λ₯Ό μ΄λ κ² λΆλ₯Έλ€.
- λ΄λΆ μ€ν€λ§ : λ°μ΄ν°λ² μ΄μ€κ° μ΄λ»κ² μ μ₯μ₯μΉμ μ μ₯λ μ§μ λν λͺ μΈ. 물리μ μ μ₯μ₯μΉμ κ΄κ³λ₯Ό μ μνλ€.
β INNER JOIN
Equi Join
κ³ΌNon-Equi Join
μΌλ‘ ꡬλΆμ΄ λλ€.
β Equi Join
- μ°κ²°κ³ λ¦¬κ° λλ κ³΅ν΅ μμ±μ Join μμ±μ΄λΌ ν λ
- Join λμ ν μ΄λΈμμ κ³΅ν΅ μμ±μ κΈ°μ€μΌλ‘ equal, μ¦ β=β λΉκ΅μ μν΄ κ°μ κ°μ κ°μ§λ νμ μ°κ²°νλ€.
- Join μ‘°κ±΄μ΄ = μΌλ κ³΅ν΅ μμ±μ΄ λ λ² λνλκ² λλ€. μ΄ λ μ€λ³΅μ μ κ±°νλ©΄
Natural Join
μ΄ λλ κ²μ΄λ€.
SELECT ν
μ΄λΈ1.μμ±, ν
μ΄λΈ2.μμ±
FROM ν
μ΄λΈ1, ν
μ΄λΈ2
WHERE ν
μ΄λΈ1.μμ± =ν
μ΄λΈ2.μμ±;
- ν μ΄λΈμ μ‘°μΈν λ ν ν μ΄λΈμλ§ μλ μμ±μ ν μ΄λΈλͺ μ μλ΅ν΄λ λμ§λ§, λ ν μ΄λΈμ 곡ν΅μΌλ‘ μν΄μλ μμ±μ ν μ΄λΈ λͺ μ λ°λμ νμνμ¬μΌ νλ€.
β Non-Equi Join
- κ°λ¨νλ€. μμ Equi Joinμ λλ¨Έμ§μ΄λ€. μ¦ = μ°μ°μΌλ‘ λΉκ΅νλ μ‘°μΈμ΄ μλ λλ¨Έμ§ μ‘°μΈμ λ€ Non-Equi Joinμ΄λ€.
β OUTER JOIN
- Join 쑰건μ λ§μ§ μλ ννλ κ²°κ³Όλ‘ μΆλ ₯νκΈ° μν΄ μ¬μ©νλ€.
Left Outer Join
,Right Outer Join
,Full Outer Join
μ΄ μλ€.
β Left Outer Join
- Inner Joinμ κ²°κ³Όμμ
μ°μΈ‘
릴λ μ΄μ κ³Ό 곡ν΅μμ±μ΄ μλμ’μΈ‘
릴λ μ΄μ μ ννμλ NULL κ°μ λΆμ¬νλ€.
SELCT ν
μ΄λΈ1.μμ±, ν
μ΄λΈ2.μμ±
FROM ν
μ΄λΈ1, ν
μ΄λΈ2
Left Outer Join ν
μ΄λΈ2
ON ν
μ΄λΈ1.μμ± = ν
μ΄λΈ2.μμ±;
β Right Outer Join
- Inner Joinμ κ²°κ³Όμμ
μ’μΈ‘
릴λ μ΄μ κ³Ό 곡ν΅μμ±μ΄ μλμ°μΈ‘
릴λ μ΄μ μ ννμλ NULL κ°μ λΆμ¬νλ€.
SELCT ν
μ΄λΈ1.μμ±, ν
μ΄λΈ2.μμ±
FROM ν
μ΄λΈ1, ν
μ΄λΈ2
Right Outer Join ν
μ΄λΈ2
ON ν
μ΄λΈ1.μμ± = ν
μ΄λΈ2.μμ±;
Leftμ right Outer Joinμμ μ μν μ
- Leftλ μ’μΈ‘ 릴λ μ΄μ κΈ°μ€μΌλ‘ μ’μΈ‘ ννλ€μ λͺ¨λ νμλλ€. Rightλ λ°λμ΄λ€.
-
- μ°μ°μ μ¬μ©νκ² λλ©΄
Inner join
κ³Ό λμΌν λ°©μμΌλ‘ μ¬μ©μ΄ κ°λ₯νλ€.- Leftλ 쑰건문μ μ°μΈ‘, Rightλ 쑰건문μ μ’μΈ‘μ μ¬μ©νλ€.
- μμ)
SELECT ν μ΄λΈ1.μμ±, ν μ΄λΈ2.μμ± FROM ν μ΄λΈ1, ν μ΄λΈ2 WHERE ν μ΄λΈ1.μμ± = ν μ΄λΈ2.μμ±(+)
- μ°μ°μ μ¬μ©νκ² λλ©΄
β Full Outer Join
- Leftμ Rightλ₯Ό ν©μ³€λ€.
SELCT ν
μ΄λΈ1.μμ±, ν
μ΄λΈ2.μμ±
FROM ν
μ΄λΈ1, ν
μ΄λΈ2
Full Outer Join ν
μ΄λΈ2
ON ν
μ΄λΈ1.μμ± = ν
μ΄λΈ2.μμ±;
Leave a comment