๐๏ธ ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/299305
๐ก์กฐ๊ฑด
## ECOLI_DATA : ๋์ฅ๊ท ๋ค์ ์ ๋ณด, ์ต์ด์ ๋์ฅ๊ท ๊ฐ์ฒด์ PARENT_ID = NULL
## ID, CHILD_COUNT๋ฅผ ์ถ๋ ฅ, ์์์ด ์๋ค๋ฉด ์์์ ์๋ 0์ผ๋ก ์ถ๋ ฅ
## ๊ฐ์ฒด์ ID์ ๋ํด ์ค๋ฆ์ฐจ์
โ๏ธ ๋ด ์ฝ๋
## ECOLI_DATA : ๋์ฅ๊ท ๋ค์ ์ ๋ณด, ์ต์ด์ ๋์ฅ๊ท ๊ฐ์ฒด์ PARENT_ID = NULL
## ID, CHILD_COUNT๋ฅผ ์ถ๋ ฅ, ์์์ด ์๋ค๋ฉด ์์์ ์๋ 0์ผ๋ก ์ถ๋ ฅ
## ๊ฐ์ฒด์ ID์ ๋ํด ์ค๋ฆ์ฐจ์
SELECT E.ID, COUNT(C.ID) AS CHILD_COUNT FROM ECOLI_DATA E
LEFT JOIN ECOLI_DATA C
ON E.ID = C.PARENT_ID
GROUP BY E.ID
ORDER BY E.ID
๐์๊ธฐ ์์ ๊ณผ LEFT JOIN
1. LEFT JOIN
- ECOLI_DATA ํ ์ด๋ธ์ ์๊ธฐ ์์ ๊ณผ LEFT_JOIN
- ๋ถ๋ชจ ๊ฐ์ฒด๊ฐ ์์์ด ์๋ ๊ฒฝ์ฐ๋ ํฌํจํ๊ธฐ ๋๋ฌธ์ LEFT_JOIN์ ์ด์ฉ!
2. COUNT(C.ID)
- ์์ ๊ฐ์ฒด์ ID๋ฅผ ์ธ์ด ์์ ๊ฐ์ฒด์ ์๋ฅผ ๊ตฌํ๊ธฐ
- ๋ง์ฝ NULL -> 0 ์ผ๋ก ๋ฐํ
3. GROUP BY
- ๊ฐ ๋ถ๋ชจ ๊ฐ์ฒด์ ๋ํด ์์ ๊ฐ์ฒด์ ์๋ฅผ ๊ณ์ฐ
๐ ์ค๋์ ํ๊ธฐ
์๊ธฐ ์์ ์ JOIN ํ๋ ๋ด์ฉ์ ๊ธฐ์ตํ์ง ๋ชปํด์ ํ ๋ฒ์ ํด๊ฒฐํ์ง ๋ชปํ ๋ฌธ์ ์๋ค.
๋๋ฌด ๊ธด ์๊ฐ์ ํ ์ ํ๋ฉฐ ๊ณ ๋ฏผํ๊ธฐ ๋ณด๋ค๋ ์ ๋นํ ๊ณ ๋ฏผํ๋ค๊ฐ ํ์ด๋ฅผ ๋ณด๊ณ ์ดํดํด๋๊ฐ๋ ๊ณผ์ ๋ ์ค์ํ ๊ฒ ๊ฐ๋ค!