๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
4. Backend & DB ๐Ÿ—„๏ธ/SQLD

[SQLD] JOIN์ด๋ž€?

by lxvxxu 2026. 5. 31.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์กฐ์ธ(Join)์ด๋ž€

๋‘˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ ํ™”๋ฉด์œผ๋กœ ๊ฒฐํ•ฉํ•ด์„œ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ด์š”! เผผ ใค โ—•_โ—• เผฝใค

SQLD ์‹œํ—˜์—์„œ๋Š” ๊ฐ ์กฐ์ธ์˜ ํŠน์ง•๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‚˜์˜ค๋Š”์ง€ ๋น„๊ตํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฌด์กฐ๊ฑด ์ถœ์ œ๋˜๋‹ˆ,

์•„๋ž˜ 4๊ฐ€์ง€ ํ•ต์‹ฌ ์กฐ์ธ์€ ๊ผญ ๋งˆ์Šคํ„ฐํ•˜์…”์•ผ ํ•ด์š”! ๐Ÿ˜‰

1. ๋‚ด๋ถ€ ์กฐ์ธ (INNER JOIN)

  • ๊ฐœ๋…: ๋‘ ํ…Œ์ด๋ธ”์—์„œ ์กฐ์ธ ์กฐ๊ฑด์ด ์ผ์น˜ํ•˜๋Š” ๊ณตํ†ต๋œ ๋ฐ์ดํ„ฐ๋งŒ ๊ฒฐํ•ฉํ•˜์—ฌ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ํŠน์ง•: ๊ต์ง‘ํ•ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•ด์š”. ํ•œ์ชฝ ํ…Œ์ด๋ธ”์—๋งŒ ์กด์žฌํ•˜๊ณ  ๋‹ค๋ฅธ ์ชฝ์—๋Š” ์—†๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ฒฐ๊ณผ์—์„œ ์™„์ „ํžˆ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.

2. ์™ธ๋ถ€ ์กฐ์ธ (LEFT / RIGHT / FULL OUTER JOIN)

  • ๊ฐœ๋…: ์กฐ๊ฑด์ด ๋งž์ง€ ์•Š์•„๋„ ๊ธฐ์ค€์ด ๋˜๋Š” ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€์ชฝ ํ…Œ์ด๋ธ”์— ๋งค์นญ๋˜๋Š” ๊ฐ’์ด ์—†์œผ๋ฉด NULL๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.
  • ์ข…๋ฅ˜:
    • LEFT OUTER JOIN: ์™ผ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋Š” ๋ฌด์กฐ๊ฑด ๋‹ค ๋‚˜์˜ค๊ณ , ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์€ ๋งค์นญ๋˜๋Š” ๊ฒƒ๋งŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. (๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์—ฌ์š”!)
    • RIGHT OUTER JOIN: ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
    • FULL OUTER JOIN: ์–‘์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์ง‘ํ•ฉ ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

3. ์ƒํ˜ธ ์กฐ์ธ (CROSS JOIN / CARTESIAN PRODUCT)

  • ๊ฐœ๋…: ์กฐ๊ฑด ์—†์ด ๋‘ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ์ƒํ˜ธ ๊ฐ„์— ๋ฌด์กฐ๊ฑด ๊ณฑํ•˜๋Š”(์กฐํ•ฉํ•˜๋Š”) ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • ํŠน์ง•: A ํ…Œ์ด๋ธ” ํ–‰์ด 5๊ฐœ, B ํ…Œ์ด๋ธ” ํ–‰์ด 4๊ฐœ๋ผ๋ฉด ๊ฒฐ๊ณผ๋Š” ์ด $5 \times 4 = 20$๊ฐœ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ๋Œ€๋Ÿ‰์˜ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ์™ธ์—๋Š” ์„ฑ๋Šฅ์— ๋ถ€ํ•˜๋ฅผ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค๋ฌด์—์„œ๋Š” ์ฃผ์˜ํ•ด์„œ ์จ์•ผ ํ•ด์š”.

4. ์…€ํ”„ ์กฐ์ธ (SELF JOIN)

  • ๊ฐœ๋…: ๋ณ„๋„์˜ ํ…Œ์ด๋ธ”์ด ์•„๋‹ˆ๋ผ ์ž๊ธฐ ์ž์‹  ํ…Œ์ด๋ธ”๊ณผ ์กฐ์ธํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • ํŠน์ง•: ํ•œ ํ…Œ์ด๋ธ” ๋‚ด์—์„œ '์‚ฌ์›'๊ณผ '๋‹ด๋‹น ์‚ฌ์ˆ˜(๋งค๋‹ˆ์ €)'์˜ ๊ด€๊ณ„์ฒ˜๋Ÿผ, ๊ณ„์ธตํ˜• ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ” ์•ˆ์—์„œ ์—ฐ๊ฒฐํ•ด์„œ ์กฐํšŒํ•  ๋•Œ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก SQLD ํ•ต์‹ฌ ์ฒดํฌํฌ์ธํŠธ!

์กฐ์ธ์„ ํ•  ๋•Œ๋Š” ๋‘ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด ์ค„ ๊ณตํ†ต ์ปฌ๋Ÿผ(์˜ˆ: ํšŒ์› ํ…Œ์ด๋ธ”์˜ ํšŒ์›ID์™€ ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์˜ ํšŒ์›ID)์„ ON ์ ˆ์— ์ •ํ™•ํžˆ ๋ช…์‹œํ•ด ์ฃผ์–ด์•ผ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฌถ์ž…๋‹ˆ๋‹ค.