OUTER JOIN

  • INNER JOIN์€ ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ
    → ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์กฐํšŒ๋˜์ง€ ์•Š์Œ
  • OUTER JOIN์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ํ–‰๋„ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ์กฐ์ธ ๊ธฐ๋ฒ•

 

LEFT JOIN

(LEFT JOIN ์˜ˆ์ œ) ์ฃผ๋ฌธํ•œ ์ด๋ ฅ์ด ์—†๋Š” USER์˜ ORDER ๋ฐ์ดํ„ฐ๋„ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด?

Users

Id ๋กœ๊ทธ์ธ ์•„์ด๋”” ์ฃผ์†Œ
1 A ๊ด‘์ง„๊ตฌ ์ž์–‘๋™
2 B ์†กํŒŒ๊ตฌ ์„์ดŒ๋™
3 C ๋ถ„๋‹น๊ตฌ ํŒ๊ต๋™

 

Orders

userId ๊ตฌ๋งค ์ƒํ’ˆ ๊ฐ€๊ฒฉ ๊ฒฐ์ œ ์ˆ˜๋‹จ
1 ์ƒดํ‘ธ 5,000 ๊ตญ๋ฏผ์นด๋“œ
2 ์‹๋นต 7,000 ์‹ ํ•œ์นด๋“œ

 

Orders ํ…Œ์ด๋ธ”์— userId๊ฐ€ 1, 2๊นŒ์ง€๋ฐ–์— ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฅผ INNER JOIN์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด Id๊ฐ€ 3์ธ ๊ฐ’์€ ์ถœ๋ ฅ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, Users ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ LEFT JOIN์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ๋ฌธ์ด๋ ฅ์ด ์—†๋Š” 'Id = 3'์ธ ๊ฐ’๊นŒ์ง€ ๋ถˆ๋Ÿฌ๋‚ด๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

 

์ฟผ๋ฆฌ

SELECT *
FROM Users -- ๊ธฐ์ค€์ด ๋˜๋Š” ํ…Œ์ด๋ธ”์„ FROM ์˜†์— ์จ์ค€๋‹ค
	LEFT JOIN Orders ON Users.Id = Orders.userId

 

๊ฒฐ๊ณผ

Id ๋กœ๊ทธ์ธ ์•„์ด๋”” ์ฃผ์†Œ userId ๊ตฌ๋งค์ƒํ’ˆ ๊ฐ€๊ฒฉ ๊ฒฐ์ œ์ˆ˜๋‹จ
1 A ๊ด‘์ง„๊ตฌ ์ž์–‘๋™ 1 ์ƒดํ‘ธ 5,000 ๊ตญ๋ฏผ์นด๋“œ
2 B ์†กํŒŒ๊ตฌ ์„์ดŒ๋™ 2 ์‹๋นต 7,000 ์‹ ํ•œ์นด๋“œ
3 C ๋ถ„๋‹น๊ตฌ ํŒ๊ต๋™ NULL NULL NULL NULL

 

LEFT JOIN์— ๋Œ€ํ•œ ์„ค๋ช…. Table A๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ฌ๊ฑฐ๊ณ , Table B์— ์ผ์น˜ํ•˜๋Š” ๊ฐ’์ด ์—†์œผ๋ฉด Null๋กœ ์ฑ„์šธ๊ฑฐ๋‹ˆ๊น ๊ทธ๋ ‡๊ฒŒ ์•Œ์•„!

 


์ถœ์ฒ˜ 

https://www.inflearn.com/course/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EC%A4%91%EA%B8%89-sql

 

[๋ฐฑ๋ฌธ์ด๋ถˆ์—ฌ์ผํƒ€] ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ์ค‘๊ธ‰ SQL - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

์ธํ”„๋Ÿฐ ๋ˆ„์  ์ˆ˜๊ฐ•์ƒ 10,000๋ช… ์ด์ƒ, ํ’๋ถ€ํ•œ ์˜จ/์˜คํ”„๋ผ์ธ ๊ฐ•์˜ ๊ฒฝํ—˜์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฆฌ์•ˆ์˜ SQL ์ค‘๊ธ‰ ๊ฐ•์˜. SQL ์ค‘๊ธ‰ ์ด๋ก ์„ ๋ฐฐ์šฐ๊ณ , ์‹ค์Šต ๋ฌธ์ œ๋ฅผ ํ•จ๊ป˜ ํ’€์–ด๋ด…๋‹ˆ๋‹ค., - ๊ฐ•์˜ ์†Œ๊ฐœ | ์ธํ”„๋Ÿฐ...

www.inflearn.com

+ Recent posts