๐[DB] JOIN์ด๋?
JOIN์ด๋
JOIN(์กฐ์ธ) ์ด๋, ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ์ฌ๋ฌ ํ
์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์กฐํฉํด ํ๋์ ์ด๋ก ํํ ํ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ์กฐ์ธ์ ํ
์ด๋ธ๋ก์ ์ ์ฅ๋๊ฑฐ๋, ๊ทธ ์์ฒด๋ก ์ด์ฉํ ์ ์๋ ๊ฒฐ๊ณผ ์
์ ๋ง๋ค์ด๋ธ๋ค.
์กฐ์ธ์ ๋ฐฉ์์ ๋ฐ๋ผ INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN ๋ฑ์ผ๋ก๋ก ๋๋ ์ ์๋ค.
JOIN์ ํ์์ฑ
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB)
์ ๊ตฌ์กฐ์ ํน์ง์ผ๋ก ์ ๊ทํ
๋ฅผ ์ํํ๋ฉด ์๋ฏธ์๋ ๋ฐ์ดํฐ์ ์งํฉ์ผ๋ก ํ
์ด๋ธ์ด ๊ตฌ์ฑ๋๊ณ , ๊ฐ ํ
์ด๋ธ๋ผ๋ฆฌ๋ ๊ด๊ณ(Relationship)
์ ๊ฐ๊ฒ๋๋ค.
์ด๋ฌํ ํน์ง์ผ๋ก ์ธํด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ์ฅ๊ณต๊ฐ์ ํจ์จ์ฑ๊ณผ ํ์ฅ์ฑ์ด ํฅ์๋๋ค.
ํ์ง๋ง, ๋ฐ๋๋ก ์๊ฐํด๋ณด๋ฉด ์๋ก ๊ด๊ณ
์๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ํ
์ด๋ธ๋ก ๋๋์ด ์ ์ฅ๋๋ฏ๋ก ๊ฐ ํ
์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์กฐ์ธ์ด ํ์ํด์ง๋ค.
๋ด๋ถ์กฐ์ธ: INNER JOIN
INNER JOIN ์ ๊ฐ์ฅ ํํ ๊ฒฐํฉ ๋ฐฉ์์ด๋ฉฐ, ๊ธฐ๋ณธ ์กฐ์ธ ํ์
์ผ๋ก ๊ฐ์ฃผ๋๋ค.
๋ด๋ถ์กฐ์ธ์ ์กฐ์ธ ๊ตฌ๋ฌธ์ ๊ธฐ๋ฐํ 2๊ฐ์ ํ
์ด๋ธ(A, B)์ ์ปฌ๋ผ ๊ฐ์ ๊ฒฐํฉํจ์ผ๋ก์จ ์๋ก์ด ๊ฒฐ๊ณผ ํ
์ด๋ธ์ ์์ฑํ๋ค.
๋ช
์์ ์กฐ์ธ ํํ
๊ณผ ์์์ ์กฐ์ธ ํํ
์ 2๊ฐ์ง ๋ฐฉ์์ ์กฐ์ธ ๊ตฌ๋ฌธ์ด ์๋ค.
[๋ช ์์ ์กฐ์ธ ํํ]
SELECT * FROM employee INNER JOIN department ON employee.DepartmentID = department.DepartmentID;
[์์์ ์กฐ์ธ ํํ]
SELECT * FROM employee, department WHERE employee.DepartmentID = department.DepartmentID;
์ธ๋ถ์กฐ์ธ: OUTER JOIN
OUTER JOIN ์ ์กฐ์ธ ๋์ ํ
์ด๋ธ์์ ํน์ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ํ์ํ ์ํฉ ์์ ์ฌ์ฉํ๋ฉด ํจ๊ณผ์ ์ผ๋ก ๊ฒฐ๊ณผ ์
์ ์์ฑํ ์ ์๋ค.
์ฆ, A, B ํ
์ด๋ธ์ ์กฐ์ธํ ๊ฒฝ์ฐ ์กฐ๊ฑด์ ๋ง์ง ์๋ ๋ฐ์ดํฐ๋ผ๋ ํํํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
์ผ์ชฝ ์ธ๋ถ์กฐ์ธ: LEFT OUTER JOIN
์กฐ์ธ ์ํ ์, ๋จผ์ ํ๊ธฐ๋ ์ข์ธก ํ
์ด๋ธ์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ์ฝ์ ํ, ๋ค์์ ์ค๋ ํ
์ด๋ธ์์ ์กฐ์ธ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์จ๋ค.
[์์]
SELECT * FROM employee LEFT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
์ฆ A LEFT OUTER JOIN B์ธ ๊ฒฝ์ฐ A, B ํ ์ด๋ธ ๊ฐ ์กฐ์ธ ์กฐ๊ฑด์ด ๋ง์ง ์๋ A์ B ํ ์ด๋ธ์ ๋ ์ฝ๋ ์ค A๋ ๋ฌด์กฐ๊ฑด ๊ฒฐ๊ณผ์ ์ ๋ชจ๋ ํฌํจ๋๋ค.
์ค๋ฅธ์ชฝ ์ธ๋ถ์กฐ์ธ: RIGHT OUTER JOIN
์กฐ์ธ ์ํ ์ LEFT JOIN๊ณผ ๋ฐ๋์ ๊ฐ๋
์ด๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
LEFT JOIN๊ณผ ๋ฐ๋๋ก ์ฐ์ธก ํ
์ด๋ธ์ด ๊ธฐ์ค์ด ๋์ด ๊ฒฐ๊ณผ ์
์ ์์ฑํ๋ค.
[์์]
SELECT * FROM employee RIGHT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
๋ง์ฐฌ๊ฐ์ง๋ก A RIGHT OUTER JOIN B์ผ ๊ฒฝ์ฐ A, B ํ ์ด๋ธ ๊ฐ ์กฐ์ธ ์กฐ๊ฑด์ด ๋ง์ง ์๋ A์ B ํ ์ด๋ธ์ ๋ ์ฝ๋ ์ค B ํ ์ด๋ธ์ ๋ ์ฝ๋๋ ๋ฌด์กฐ๊ฑด ๊ฒฐ๊ณผ์ ์ ๋ชจ๋ ํฌํจ๋๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ