ํต์ฌ
- on: join ์ ์ ์กฐ๊ฑด์ ํํฐ๋ง
- where: join ํ์ ์กฐ๊ฑด์ ํํฐ๋ง
์์
`ON` ์ ๊ณผ `WHERE` ์ ์ SQL์์ ์กฐ์ธ ์ฐ์ฐ ์์ ์กฐ๊ฑด์ ์ง์ ํ๋๋ฐ ์ฌ์ฉ๋๋ ์ ์ ๋๋ค.
JOIN์ ์ด์ฉํ ๋ ์กฐ๊ฑด์ ์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋๋์ ๋ฐ๋ผ ์ฑ๋ฅ์ ์ฐจ์ด๊ฐ ์๊น๋๋ค.
SQL ์ฟผ๋ฆฌ ์คํ ์์๋ฅผ ๋ชจ๋ฅธ๋ค๋ฉด ์ฐธ๊ณ
์์๋ฅผ ํตํด on์์์ ์กฐ๊ฑด๊ณผ where์์์ ์กฐ๊ฑด ์ฐจ์ด๋ฅผ ์ง๊ณ ๋์ด๊ฐ๋ณด๊ฒ ์ต๋๋ค.
- `users` ํ ์ด๋ธ (user_id, name, email)
- `orders` ํ ์ด๋ธ (order_id, user_id, name, total_amount)
# CASE 1)
SELECT *
FROM users a, orders b
WHERE a.user_id = b.user_id
and a.name = b.name
and a.id = 1004;
# CASE 2)
SELECT *
FROM users a
INNER JOIN orders b ON a.user_id = b.user_id
and a.name = b.name
and a.id = 1004;
- CASE 1)
- JOIN์ ์คํํ ๋ค -> ์กฐ์ธ ๊ฒฐ๊ณผ๋ก ์์ฑ๋ ํ ์ด๋ธ์์ id๊ฐ 1004์ธ ํ๋ค์ ๊ฒ์
- CASE 2)
- JOIN ์คํ ์, a.id๊ฐ 1004์ธ ํ ์ด๋ธ๊ณผ bํ ์ด๋ธ์ ์กฐ์ธ
์ ๋ฆฌํ๋ฉด
๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ต์ข ๊ฒฐ๊ณผ๋ ๊ฐ์ง๋ง, JOIN ํ๋ก์ธ์ค์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
CASE1์ ์ฟผ๋ฆฌ๋ ์กฐ๊ฑด์ ๋์ค์ ๊ฑธ์ด์ฃผ๋ ๋ฐฉ์์ด๋ฉฐ,
CASE2์ ์ฟผ๋ฆฌ๋ ์ด๋ฏธ ํ์ํ ํ ์ด๋ธ์ ๋ฝ์ ๋ค ํด๋น ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ์กฐ์ธ์ ์ํํฉ๋๋ค.
๋ฐ๋ผ์ CASE2์ ์ฟผ๋ฆฌ๋ JOIN ์ฐ์ฐ์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ์์ ์ค์ฌ ์ฉ๋์ ๋ ์ฐจ์งํ๋ฏ๋ก ์ฑ๋ฅ ๋ฉด์์ ํจ์จ์ ์ ๋๋ค.
์ค์ ๋ก ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์คํํด๋ณด๋ฉด ์ฒ๋ฆฌ์๋๊ฐ ํจ์ฌ ๋น ๋ฅธ ๊ฒ์ ์ ์ ์์ ๊ฒ์ ๋๋ค.
'๐ป Computer Science > ๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐ์ดํฐ๋ฒ ์ด์ค] DWํ ์ด๋ธ(Data Warehouse Table) ์ด๋? (1) | 2024.01.19 |
---|---|
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ๋ฐ์ดํฐ ๋ฝ(Data Lock)์ด๋? (0) | 2023.12.27 |
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ฑ๋ฅ ๊ด์ ์์ ๋ณธ JOIN (์๋ ๊ฐ์ ) (1) | 2023.12.19 |
[๋ฐ์ดํฐ๋ฒ ์ด์ค] SQL ์ฟผ๋ฆฌ ์คํ ์์(JOIN, ON, FROM, GROUP BY ๋ฑ) (0) | 2023.12.18 |
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ธ๋ฑ์ค(Index) ๋? (0) | 2023.11.29 |