[Database] Join

inΒ·2023λ…„ 11μ›” 12일
0

Database

λͺ©λ‘ 보기
2/7

πŸ“Œ Join

두 개 μ΄μƒμ˜ ν…Œμ΄λΈ”μ΄λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ—°κ²°ν•˜μ—¬ 데이터λ₯Ό κ²€μƒ‰ν•˜λŠ” 방법

➑️ ν…Œμ΄λΈ”μ„ μ—°κ²°ν•˜λ €λ©΄ 적어도 ν•˜λ‚˜μ˜ μ»¬λŸΌμ„ μ„œλ‘œ κ³΅μœ ν•˜κ³  μžˆμ–΄μ•Ό ν•˜λ―€λ‘œ 이λ₯Ό μ΄μš©ν•˜μ—¬ 데이터 검색에 ν™œμš©

πŸ“Œ INNER JOIN

SELECT
A.NAME, B.AGE
FROM EX_TABLE A
INNER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP

κ΅μ§‘ν•©μœΌλ‘œ κΈ°μ€€ ν…Œμ΄λΈ”κ³Ό 쑰인 ν…Œμ΄λΈ”μ˜ μ€‘λ³΅λœ 값을 λ³΄μ—¬μ€Œ

πŸ“Œ OUTER JOIN

LEFT OUTER JOIN

SELECT A.μƒν’ˆμ½”λ“œ μƒν’ˆμ½”λ“œ, A.μƒν’ˆλͺ… μƒν’ˆλͺ…, B.μž¬κ³ μˆ˜λŸ‰ μž¬κ³ μˆ˜λŸ‰ 
FROM TableA as A       
LEFT JOIN TableB as B   
ON A.μƒν’ˆμ½”λ“œ = B.μƒν’ˆμ½”λ“œ

μ™Όμͺ½ ν…Œμ΄λΈ” κΈ°μ€€μœΌλ‘œ 쑰인
μ™Όμͺ½ ν…Œμ΄λΈ”μ˜ λͺ¨λ“  데이터와 였λ₯Έμͺ½ ν…Œμ΄λΈ”μ˜ 쀑볡 데이터가 κ²°ν•©
값이 μ—†λŠ” λ°μ΄ν„°λŠ” null둜 ν‘œμ‹œ

RIGHT OUTER JOIN

SELECT A.μƒν’ˆμ½”λ“œ μƒν’ˆμ½”λ“œ, A.μƒν’ˆλͺ… μƒν’ˆλͺ…, B.μž¬κ³ μˆ˜λŸ‰ μž¬κ³ μˆ˜λŸ‰ 
FROM TableA as A       
RIGHT JOIN TableB as B   
ON A.μƒν’ˆμ½”λ“œ = B.μƒν’ˆμ½”λ“œ

였λ₯Έμͺ½ ν…Œμ΄λΈ” κΈ°μ€€μœΌλ‘œ 쑰인
였λ₯Έμͺ½ ν…Œμ΄λΈ”μ˜ λͺ¨λ“  데이터와 μ™Όμͺ½ ν…Œμ΄λΈ”μ˜ 쀑볡 데이터가 κ²°ν•©
값이 μ—†λŠ” λ°μ΄ν„°λŠ” null둜 ν‘œμ‹œ

FULL OUTER JOIN

SELECT A.μƒν’ˆμ½”λ“œ μƒν’ˆμ½”λ“œ, A.μƒν’ˆλͺ… μƒν’ˆλͺ…, B.μž¬κ³ μˆ˜λŸ‰ μž¬κ³ μˆ˜λŸ‰ 
FROM TableA as A       
FULL JOIN TableB as B   
ON A.μƒν’ˆμ½”λ“œ = B.μƒν’ˆμ½”λ“œ

LEFT JOINκ³Ό RIGHT JOIN κ²°κ³Όλ₯Ό ν•©μΉœ κ²°κ³Ό

πŸ“Œ CROSS JOIN

SELECT
A.NAME, B.AGE
FROM EX_TABLE A
CROSS JOIN JOIN_TABLE B

λͺ¨λ“  경우의 수λ₯Ό μ „λΆ€ ν‘œν˜„ν•΄μ£ΌλŠ” 방식

πŸ“Œ SELF JOIN

SELECT
A.NAME, B.AGE
FROM EX_TABLE A, EX_TABLE B

μžκΈ°μžμ‹ κ³Ό μžκΈ°μžμ‹  쑰인
μžμ‹ μ΄ κ°–κ³  μžˆλŠ” μ»¬λŸΌμ„ λ‹€μ–‘ν•˜κ²Œ λ³€ν˜•μ‹œμΌœ ν™œμš©ν•  λ•Œ 자주 μ‚¬μš©

[참고 자료]

πŸ”—λ§ν¬
πŸ”—λ§ν¬

0개의 λŒ“κΈ€