์กฐ์ธ
๋ ๊ฐ์ ํ ์ด๋ธ์ ์๋ก ๋ฌถ์ด์ ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ฒ

๋ด๋ถ ์กฐ์ธ (INNER JOIN)
- ์ผ๋๋ค ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ํ ์ด๋ธ๋ค์ ๊ต์งํฉ (์ผ๋๋ค ๊ด๊ณ = PK-FK ๊ด๊ณ)
- ์์๋ก, ํ์ํ ์ด๋ธ๊ณผ ๊ตฌ๋งคํ ์ด๋ธ์์ ๊ตฌ๋งค์ด๋ ฅ์ด ์๋ ํ์์ ์ ๋ณด๋ฅผ ์ถ์ถํ ์ ์๋ค.
๋ด๋ถ ์กฐ์ธ์ ๋ฌธ๋ฒ
SELECT ์ด
FROM ํ
์ด๋ธ 1
INNER JOIN ํ
์ด๋ธ 2 -- JOIN์ผ๋ก๋ ํํ ๊ฐ๋ฅ
ON ํ
์ด๋ธ 1.KEY = ํ
์ด๋ธ 2.KEY
์์ )
SELECT M.mem_id, M.mem_name, B.prod_name, M.addr
FROM buy B -- ํ
์ด๋ธ ์ด๋ฆ์ ๋ณ์นญ์ ๋ถ์ผ ์ ์๋ค
JOIN member M
ON B.mem_id = M.mem_id
ORDER BY M.mem_id
์ธ๋ถ ์กฐ์ธ (OUTER JOIN)
- ์ผ๋๋ค ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ํ ์ด๋ธ๋ค์ ํฉ์งํฉ
- ์์๋ก, ๊ตฌ๋งค ๊ธฐ๋ก์ด ์๋ ํ์์ ํฌํจํ ์ ์ฒด ํ์์ ๊ตฌ๋งค ๊ธฐ๋ก์ ์ถ๋ ฅํ ์ ์๋ค.
- LEFT OUTER JOIN : ์ฒซ๋ฒ์งธ ํ ์ด๋ธ์ ๋ด์ฉ ๋ชจ๋ ์ถ๋ ฅ
- RIGHT OUTER JOIN : ๋๋ฒ์ฉจ ํ ์ด๋ธ์ ๋ด์ฉ ๋ชจ๋ ์ถ๋ ฅ
- FULL OUTER JOIN : ์ ์ฒด ํ ์ด๋ธ ๋ด์ฉ ๋ชจ๋ ์ถ๋ ฅ (MySQL์ ์ง์ X)
์ธ๋ถ ์กฐ์ธ ๋ฌธ๋ฒ
SELECT ์ด
FROM ํ
์ด๋ธ 1
< LEFT | RIGHT | FULL > OUTER JOIN ํ
์ด๋ธ 2
ON ํ
์ด๋ธ 1.KEY = ํ
์ด๋ธ 2.KEY
์์ ) ๊ตฌ๋งค ์ด๋ ฅ์ด ์๋ ํ์ ์ ๋ณด ์ถ๋ ฅ
SELECT DISTINCT M.mem_id, B.prod_name, M.mem_name, M.addr
FROM member M
LEFT OUTER JOIN buy B
ON M.mem_id = B.mem_id
WHERE B.prod_name IS NULL
ORDER BY M.mem_id;
