[ํ๋ก๊ทธ๋๋จธ์ค level 3] ์์ด์ง ๊ธฐ๋ก ์ฐพ๊ธฐ
๋ฌธ์ ์ค๋ช
ANIMAL_INS ํ ์ด๋ธ์ ๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ์ ๋๋ค. ANIMAL_INS ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋ ๊ฐ๊ฐ ๋๋ฌผ์ ์์ด๋, ์๋ฌผ ์ข , ๋ณดํธ ์์์ผ, ๋ณดํธ ์์ ์ ์ํ, ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
NAMETYPENULLABLE
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
ANIMAL_OUTS ํ ์ด๋ธ์ ๋๋ฌผ ๋ณดํธ์์์ ์ ์ ๋ณด๋ธ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ์ ๋๋ค. ANIMAL_OUTS ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME๋ ๊ฐ๊ฐ ๋๋ฌผ์ ์์ด๋, ์๋ฌผ ์ข , ์ ์์ผ, ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค. ANIMAL_OUTS ํ ์ด๋ธ์ ANIMAL_ID๋ ANIMAL_INS์ ANIMAL_ID์ ์ธ๋ ํค์ ๋๋ค.
NAMETYPENULLABLE
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_OUTCOME | VARCHAR(N) | FALSE |
์ฒ์ฌ์ง๋ณ์ผ๋ก ์ธํด ์ผ๋ถ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋์์ต๋๋ค. ์ ์์ ๊ฐ ๊ธฐ๋ก์ ์๋๋ฐ, ๋ณดํธ์์ ๋ค์ด์จ ๊ธฐ๋ก์ด ์๋ ๋๋ฌผ์ ID์ ์ด๋ฆ์ ID ์์ผ๋ก ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
๋ฌธ์ ํ์ด
SELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAME FROM ANIMAL_OUTS
LEFT JOIN ANIMAL_INS
ON ANIMAL_INS.ANIMAL_ID=ANIMAL_OUTS.ANIMAL_ID
WHERE ANIMAL_INS.ANIMAL_ID IS NULL
ORDER BY ANIMAL_OUTS.ANIMAL_ID;
์ ์๊ฐ ๊ธฐ๋ก์ ์์ง๋ง, ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ๋ฐ์ดํฐ ์ฆ, ANIMAL_OUTS ํ ์ด๋ธ์ ์์ง๋ง, ANIMAL_INS ํ ์ด๋ธ์ ์๋ ๋๋ฌผ์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํด์ผ ํ๋ค.
๊ทธ๋ฌ๊ธฐ ์ํด์ ์ผ์ชฝ ํ ์ด๋ธ์ธ ANIMAL_OUTS์ ์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ธ ANIMAL_INS๋ฅผ JOINํ์ง๋ง ON์ ์ ํด๋นํ๋ ์กฐ๊ฑด๋๋ก ANIMAL_ID๊ฐ ๋งค์นญ๋์ง ์๋ ANIMAL_INS์ ๋ฐ์ดํฐ๋ค์ NULL๋ก ํํํ๊ณ ๋ชจ๋ ANIMAL_OUTS ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ LEFT JOIN์ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆฌ๊ณ ์์์ JOIN์ ํตํด ์ถ์ถํ ๋ฐ์ดํฐ ์ค ANIMAL_INS ํ ์ด๋ธ ๊ฐ์ด NULL์ธ ๋ฐ์ดํฐ๋ค์ ์ถ์ถํ๋ค.
์ฒ์์ NULL์ธ ๋ฐ์ดํฐ๋ค์ ์ถ์ถํ ๋ ์๋์ ๊ฐ์ด ์์ฑํ๋ ์๋ฌด๊ฒ๋ ์ถ๋ ฅ๋์ง ์์๋ค.
WHERE ANIMAL_INS.ANIMAL_ID = NULL
๊ทธ๋์ ๊ฒ์์ ํด๋ณด๋ NULL์ ๋ฐ์ดํฐ๋ก ์ทจ๊ธํ์ง ์๊ธฐ ๋๋ฌธ์ NULL์ธ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ค๋ฉด IS NULL์ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ ์์๋ค.
ํด๋น ๋ถ๋ถ์ IS NULL๋ก ๋ฐ๊พธ๊ณ , ANIMAL_OUTS์ ANIAML_ID ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ค.