Database/DB ๋ฌธ์ ํ์ด
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ด์ง ๊ธฐ๋ก ์ฐพ๊ธฐ
vividswan
2022. 3. 15. 20:06
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ด์ง ๊ธฐ๋ก ์ฐพ๊ธฐ MySQL
๋ฌธ์ : ํ๋ก๊ทธ๋๋จธ์ค_์์ด์ง ๊ธฐ๋ก ์ฐพ๊ธฐ
๋ฌธ์ ์ค๋ช
๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ์ ๋ณด์ ๋ณดํธ์์์ ์
์ ๋ณด๋ธ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ
์ด๋ธ์ด ์์ต๋๋ค.
์ด๋ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋์ด ๋ณดํธ์์์ ์
์ ๋ณด๋ธ ํ
์ด๋ธ์๋ ์กด์ฌํ์ง๋ง ๋ณดํธ์์ ๋ค์ด์จ ํ
์ด๋ธ์๋ ์กด์ฌํ์ง ์๋ ๋๋ฌผ์ด ์๊ธฐ๊ฒ ๋์์ต๋๋ค.
์ด ๋๋ฌผ๋ค์ ID์ ์ด๋ฆ์ ์กฐํํ๋ SQL์ ์์ฑํ๋ ๋ฌธ์ ์
๋๋ค.
Solution
RIGHT JOIN, NOT IN
๋ ๊ฐ์ง ํ์ด๋ฒ์ด ์์ต๋๋ค.
RIGHT JOIN
์ ์ด์ฉํด ๋ณดํธ์์์ ์ ์ ๋ณด๋ธ ๋๋ฌผ๋ค์ ๊ตฌํ ๋ค, ๋ ํ ์ด๋ธ ๋ชจ๋์ ์ํ ๋๋ฌผ๋ค์ ์ ์ธํด ์ฃผ๋ ๋ฐฉ๋ฒNOT IN
์ ์ด์ฉํ์ฌ ์ ์ ๋ณด๋ธ ํ ์ด๋ธ์์ ๋ณดํธ์์ ๋ค์ด์จ ํ ์ด๋ธ์ ๋๋ฌผ์ ์ ์ธํด ์ฃผ๋ ๋ฐฉ๋ฒ
์ผ๋ก ๋ ๊ฐ์ง์ ๋๋ค.
ํ์ด 1
SELECT o.ANIMAL_ID AS ANIMAL_ID, o.NAME AS NAME
FROM ANIMAL_INS i RIGHT JOIN ANIMAL_OUTS o
ON i.animal_id = o.animal_id
WHERE i.animal_id IS null
ORDER BY o.ANIMAL_ID;
ํ์ด 2
SELECT ANIMAL_ID, NAME
FROM ANIMAL_OUTS WHERE ANIMAL_ID
NOT IN
(SELECT ANIMAL_ID FROM ANIMAL_INS)
ORDER BY ANIMAL_ID;