[Programmers] ๋ณดํธ์์์ ์ค์ฑํํ ๋๋ฌผ (Lv.4)
๋ฐฉ๋ฒ 1 : INNER JOIN
SELECT animal_id, i.animal_type, i.name
FROM animal_ins i JOIN animal_outs o USING(animal_id)
WHERE (i.sex_upon_intake LIKE 'Intact%')
AND (o.sex_upon_outcome NOT LIKE 'Intact%')
ORDER BY animal_id
inํ ์ด๋ธ์์ ์ค์ฑํ์ฌ๋ถ๊ฐ Intact%์ด๊ณ , outํ ์ด๋ธ์์ Spayed% ๋๋ Neutered%์ธ ๋๋ฌผ์ ์ฐพ๋ ๋ฌธ์ ๋ค.
NOT LIKE ๋ฅผ ์จ๋ณธ ์ ์ด ์์ด์ ์๋ ์์ฝ์ด์ผ๊น ์ถ์๋๋ฐ ๋จนํ๋ค.
์ด์ฐจํผ ์์ชฝ์ ๋ค ๋ฐ์ดํฐ๊ฐ ์กด์ฌํด์ผ ํ๋๊น ๊ตณ์ด LEFT๊ฐ ์๋ INNER JOIN์ ํด๋ ๋๋ค.
'์ง๋ฌธํ๊ธฐ'์ ๋ค์ด๊ฐ๋ฉด ์ฐธ ๋ค์ํ๊ฒ ํผ ์ฌ๋๋ค์ ๋ณผ ์ ์๋ค
๋ค์ํด์ ์ฝ์ด๋ณด๊ณ ์ธ์ฌ์ดํธ ์ป๊ธฐ๋ ํ์ง๋ง.. ๊ฐ๋์ ์ ์ด๋ ๊ฒ๊น์ง ๊ธด ์ฟผ๋ฆฌ๋ฅผ ์ฐ์
จ์ง ํ๋์ ์ ๋ค์ด์ ๋ด๊ฐ ์ด๋ผํด๋ณด์ด๋ ์ฐฉ๊ฐ์ด ๋ค ๋๋ ์๋ค(์ง๊ธ ์๊ฐํด๋ณด๋ฉด ์ฑ๋ฅ ์๊ฐํด์ Ins์ Outs ํ
์ด๋ธ ๋๊ฐ๋ฅผ ์ ์ฒด ์กฐ์ธํ์ง ์๊ณ ๊ฐ๊ฐ ํํฐ๋ง ํ ์กฐ์ธํ์ ๊ฑฐ ๊ฐ๋ค)
๋ฐฉ๋ฒ 2 : ์๋ธ์ฟผ๋ฆฌ
SELECT animal_id, animal_type, name
FROM animal_ins
WHERE sex_upon_intake LIKE 'Intact%'
AND animal_id IN (
SELECT animal_id
FROM animal_outs
WHERE sex_upon_outcome NOT LIKE 'Intact%')
ORDER BY 1
WHER + IN ์ผ๋ก ๋จ์ผํ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค
๋ค๋ง ์ด๋ฐ ๊ฒฝ์ฐ ๋ฉ์ธ์ฟผ๋ฆฌ 1๋ฒ์ ์คํํ ๋ ์๋ธ์ฟผ๋ฆฌ๊ฐ animal_id๋ฅผ ์๋ธ์ฟผ๋ฆฌ์ ๋งค๋ฒ ๋น๊ตํด์ผ ํด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค
์ฝ๋ค... ํ๋ก๊ทธ๋๋จธ์ค๋ ์ฝ๊ตฌ๋... ์ด๊ฒ ์ต์ข ๋ ๋ฒจ์ด๋ผ๋...