๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

# JOIN

category ๐Ÿ—„๏ธ ๋ฐฑ์—”๋“œ/๐Ÿ—„๏ธDB 2025. 3. 6. 13:27
๋ฐ˜์‘ํ˜•

join์ด ํ•„์š”ํ•œ ์ด์œ 

user ํ…Œ์ด๋ธ” ์‚ฌ์šฉ์ž ์ •๋ณด                                                                                                                          orderํ…Œ์ด๋ธ” ์ฃผ๋ฌธ์ •๋ณด

 

๋งŒ์•ฝ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์ฃผ๋ฌธํ•œ ์ƒํ’ˆ์„ ๊ฐ™์ด ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด?

๋‘ ํ…Œ์ด๋ธ”์„ user_id ๊ธฐ์ค€์œผ๋กœ JOIN ํ•ด์•ผ ํ•จ

 

INNER JOIN (๊ต์ง‘ํ•ฉ)

 : INNER JOIN์€ ๋‘ ํ…Œ์ด๋ธ”์—์„œ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹

 

SELECT users.name, users.email, orders.product_name, orders.quantity
FROM users
INNER JOIN orders ON users.user_id = orders.user_id;

 

inner join ๊ฒฐ๊ณผ

users์™€ orders์—์„œ user_id๊ฐ€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋งŒ ๋งค์นญ๋จ!

 

LEFT JOIN (์™ผ์ชฝ ํ…Œ์ด๋ธ” ๊ธฐ์ค€)

 : LEFT JOIN์€ ์™ผ์ชฝ(users) ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด NULL์„ ์ถœ๋ ฅ

 

SELECT users.name, users.email, orders.product_name, orders.quantity
FROM users
LEFT JOIN orders ON users.user_id = orders.user_id;

 

left join ๊ฒฐ๊ณผ

์ฃผ๋ฌธํ•œ ์ ์ด ์—†๋Š” '์ •์ˆ˜์—ฐ'๋„ ๋‚˜์˜ค์ง€๋งŒ ์ฃผ๋ฌธ ์ •๋ณด๋Š” NULL

 

RIGHT JOIN (์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ” ๊ธฐ์ค€)

 : RIGHT JOIN์€ ์˜ค๋ฅธ์ชฝ(orders) ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ณ ,
์ผ์น˜ํ•˜์ง€ ์•Š๋Š” users ๋ฐ์ดํ„ฐ๋Š” NULL

 

SELECT users.name, users.email, orders.product_name, orders.quantity
FROM users
RIGHT JOIN orders ON users.user_id = orders.user_id;

 

์ง€๊ธˆ์€ users์— ์—†๋Š” ์ฃผ๋ฌธ์ด ์—†์–ด์„œ inner join๊ณผ ๋™์ผ

 

FULL JOIN (๋ชจ๋“  ๋ฐ์ดํ„ฐ)

 : FULL JOIN์€ ๋‘ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹
๋งŒ์•ฝ ํ•œ์ชฝ ํ…Œ์ด๋ธ”์—๋งŒ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” NULL

SELECT users.name, users.email, orders.product_name, orders.quantity
FROM users
FULL JOIN orders ON users.user_id = orders.user_id;

 

๋ฐ˜์‘ํ˜•