๋ฌธ์
DEVELOPERS ํ ์ด๋ธ์์ Python์ด๋ C# ์คํฌ์ ๊ฐ์ง ๊ฐ๋ฐ์์ ์ ๋ณด๋ฅผ ์กฐํํ๋ ค ํฉ๋๋ค. ์กฐ๊ฑด์ ๋ง๋ ๊ฐ๋ฐ์์ ID, ์ด๋ฉ์ผ, ์ด๋ฆ, ์ฑ์ ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด ์ฃผ์ธ์.
๊ฒฐ๊ณผ๋ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด ์ฃผ์ธ์.
ํ์ด
๊ฐ๋ฐ์ ์ ๋ณด์ ์คํฌ ์ ๋ณด๋ฅผ joinํ๊ธฐ ์ํด์๋
DEVELOPER ํ ์ด๋ธ์ SKILL_CODE์ SKILLCODES ํ ์ด๋ธ์ CODE๋ฅผ ์ฎ์ด์ผํ๋ค
์คํฌ์ฝ๋์ ์ฝ๋๊ฐ ๋ ๋ค ์ด์ง์๊ธฐ ๋๋ฌธ์ ๋นํธ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
from DEVELOPERS d left join SKILLCODES s on (d.SKILL_CODE & s.CODE) = s.CODE
์๋ฅผ ๋ค์ด ์คํฌ์ฝ๋๊ฐ ์ด์ง์๋ก 1001(2) ์ด๋ผ๊ณ ํ์,
1001 & 1000 = 1000
1001 & 0100 = 0000
1001 & 0010 = 0000
1001 & 0001 = 0001
์ด๋ค.
๋ฐ๋ผ์ ์คํฌ์ฝ๋์ ์ฝ๋์ & ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ฝ๋์ ๊ฐ๋ค๋ฉด,
ํด๋น ์ฝ๋๊ฐ ์คํฌ์ฝ๋์ ํฌํจ๋์ด์๋ ๊ฒ๊ณผ ๊ฐ๊ณ
ํด๋น ๊ฐ๋ฐ์๊ฐ ํด๋น ์คํฌ์ ๋ณด์ ํ ๊ฒ๊ณผ ๊ฐ๋ค.
select distinct d.ID, d.EMAIL, d.FIRST_NAME, d.LAST_NAME
from DEVELOPERS d left join SKILLCODES s on (d.SKILL_CODE & s.CODE) = s.CODE
where s.NAME in ('Python', 'C#')
order by d.ID