Pwith ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ค๊ณํ ํ
์ด๋ธ ์ค
portfolio
๋ ํฌํธํด๋ฆฌ์ค(๋ฉํ ์์์)์ ๋ํ ์ ๋ณด,
portfolioSubject
๋ ํด๋น ํฌํธํด๋ฆฌ์ค์ ๊ณผ๋ชฉ์ ๋ด๊ธฐ ์ํ ํ
์ด๋ธ์ด๋ค.
๋ฆฌํฉํ ๋ง์ ์งํํ๊ธฐ ์ ์ฐ๋ฆฌ๋ portfolio
ํ
์ด๋ธ์ subject ์ปฌ๋ผ์ varchar() ํ์
์ผ๋ก ์ค์ ํ๊ณ ๋ฌธ์์ด์ ํ์์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ์ ์ฅํ๋ค. 1NF์ ์์์ฑ ์กฐ์ฐจ ๋ง์กฑํ์ง ๋ชปํ๋ ๋ฐฉ์์ด์๋ค. ์ฌ๋ฆ๋ฐฉํ์ ๊ฑฐ์ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ ์ฒด์ ์ธ ๋ฆฌํฉํ ๋ง์ ์งํํ ํ ๋ ํ
์ด๋ธ portfolio
์ portfolioSubject
๋ก ๋ถ๋ฆฌํ๋ค.
ํฌํธํด๋ฆฌ์ค์ ์ ๋ณด๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ฟ๋ ค์ค ๋ ์ฐ๋ฆฌ๋ portfolio
ํ
์ด๋ธ ๋ด์ ์ ๋ณด ๋ฟ ์๋๋ผ portfolioSubject
ํ
์ด๋ธ ๋ด์ ์ ๋ณด๋ ํ์ํ๋ค. JOIN์ ์ด์ฉํด์ผ ํ๊ณ , subject ์ปฌ๋ผ์ ์ ๋ณด๋ค์ ๋ฐฐ์ด์ ํํ๋ก ์ป๊ณ ์ถ์๋ค. ๊ทธ๋ ๊ฒ ๊ฒ์์ ์งํํ๋ ์ค group_concat()
๋ฅผ ์๊ฒ ๋์๋ค.
์๋ก ์ด ๊ธธ์๋ค.
์ฌ์ฉ ์์๋ ์๋์ ๊ฐ๋ค.
SELECT p.mento, p.brief, p.mentoPic, p.content, p.curDate, p.score, group_concat(ps.subject)
FROM portfolio p JOIN portfolioSubject ps ON p.id=ps.portfolio
GROUP BY p.mento
์ฟผ๋ฆฌ ์คํ ์ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ๋ค.
๊ทธ๋ฌ๋, ์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ GROUP BY๋ก ๋๋์ด์ง row๋ก ๋ฐฐ์ด์ ์์ฑํ๋ค๋ ์ .
์ ์ฟผ๋ฆฌ๋ฌธ์์ GROUP BY๋ฅผ ์ ์ฉํ์ง ์๋๋ค๋ฉด
GROUP_CONCAT(subject)
์ ๊ฒฐ๊ณผ๋ 1, 2, 3, 6, 8 ์ด ๋ ๊ฒ์ด๋ค.
์ธ์์๋ ์ ๋ง ๋ค์ํ ์ฟผ๋ฆฌ๋ฌธ์ด ์๋ค. ํ๋ ํ๋ ๋์ด ์๋ค.
ํ์์ ์ด์๋ ๊ณต๋ถํ ๊ฒ ๋ง๋ค๋ ์ฌ์ค์ ์ฐธ ์ ๋ฌผ ๊ฐ๋ค. ๐
์ ์ฝ์์ต๋๋ค. ์ข์ ์ ๋ณด ๊ฐ์ฌ๋๋ฆฝ๋๋ค.