2022. 9. 26. 16:03ใ์ฝ๋ฉํ ์คํธ ์ฐ์ต/ํ๋ก๊ทธ๋๋จธ์ค_2022
๋ฌธ์ ์ค๋ช
ANIMAL_INS ํ ์ด๋ธ์ ๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ์ ๋๋ค. ANIMAL_INS ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋ ๊ฐ๊ฐ ๋๋ฌผ์ ์์ด๋, ์๋ฌผ ์ข , ๋ณดํธ ์์์ผ, ๋ณดํธ ์์ ์ ์ํ, ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
NAME TYPE NULLABLE
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์ ์ธ๋ ํค์ ๋๋ค.
NAME TYPE NULLABLE
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_OUTCOME | VARCHAR(N) | FALSE |
์์ง ์ ์์ ๋ชป ๊ฐ ๋๋ฌผ ์ค, ๊ฐ์ฅ ์ค๋ ๋ณดํธ์์ ์์๋ ๋๋ฌผ 3๋ง๋ฆฌ์ ์ด๋ฆ๊ณผ ๋ณดํธ ์์์ผ์ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ๋ณดํธ ์์์ผ ์์ผ๋ก ์กฐํํด์ผ ํฉ๋๋ค.
์์
์๋ฅผ ๋ค์ด, ANIMAL_INS ํ ์ด๋ธ๊ณผ ANIMAL_OUTS ํ ์ด๋ธ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
ANIMAL_INS
ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKEA354597 | Cat | 2014-05-02 12:16:00 | Normal | Ariel | Spayed Female |
A373687 | Dog | 2014-03-20 12:31:00 | Normal | Rosie | Spayed Female |
A412697 | Dog | 2016-01-03 16:25:00 | Normal | Jackie | Neutered Male |
A413789 | Dog | 2016-04-19 13:28:00 | Normal | Benji | Spayed Female |
A414198 | Dog | 2015-01-29 15:01:00 | Normal | Shelly | Spayed Female |
A368930 | Dog | 2014-06-08 13:20:00 | Normal | Spayed Female |
ANIMAL_OUTS
ANIMAL_ID ANIMAL_TYPE DATETIME NAME SEX_UPON_OUTCOMEA354597 | Cat | 2014-05-02 12:16:00 | Ariel | Spayed Female |
A373687 | Dog | 2014-03-20 12:31:00 | Rosie | Spayed Female |
A368930 | Dog | 2014-06-13 15:52:00 | Spayed Female |
SQL๋ฌธ์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์์ผ ํฉ๋๋ค.
NAME DATETIME
Shelly | 2015-01-29 15:01:00 |
Jackie | 2016-01-03 16:25:00 |
Benji | 2016-04-19 13:28:00 |
โป ์ ์์ ๊ฐ์ง ๋ชปํ ๋๋ฌผ์ด 3๋ง๋ฆฌ ์ด์์ธ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค.
๋์ ํ์ด [MySQL]
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A LEFT OUTER JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME LIMIT 3;
-> ๋ ๋ฒจ3์ด ๋๋๊น JOIN ๋ฌธ์ ๋ ๋์จ๋ค..! ใ ใ
์ผ๋จ ์ด ๋ฌธ์ ๋ ANIMAL_INS๊ณผ ANIMAL_OUTS ํ ์ด๋ธ์ ์กฐ์ธ์ ํ๋๋ฐ ์ด๋ ๋๋ฌผ ๋ณดํธ์์์ ์ ์๋์ง ๋ชปํ ๋๋ฌผ๋ค์ ๊ตฌํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ANIMAL_INS ์ ANIMAL_OUTS๋ฅผ LEFT OUTER JOIN ํด์ผ ํ๋ค.
์ด๋ ์กฐ๊ฑด์ ANIMAL_ID์ B.ANIMAL_ID๊ฐ ๊ฐ์ ๋ ์กฐ์ธ์ ํ๋๋ฐ ์ ์์ ๊ฐ์ง ๋ชปํ ๋๋ฌผ์ผ ๊ฒฝ์ฐ์๋ B.ANIMAL_ID๊ฐ NULL ๊ฐ์ผ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก JOIN์ ํ๊ณ WHERE ์กฐ๊ฑด์ ์ B.ANIMAL_ID IS NULL์ ์ถ๊ฐํด์ฃผ๊ณ ,
๊ทธ ๋ค์ ๋ณดํธ ์์์ผ์ ์ค์ฌ์ผ๋ก ์ ๋ ฌํ๋ผํด์ A.DATETIME์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํด์ฃผ๊ณ , ๋ง์ง๋ง์ผ๋ก ๊ฐ์ฅ ์ค๋ ์ ์๋์ง ๋ชปํ ๋๋ฌผ 3๋ง๋ฆฌ๋ง ์กฐํํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ LIMIT 3์ ํด์คฌ๋ค..!
'์ฝ๋ฉํ ์คํธ ์ฐ์ต > ํ๋ก๊ทธ๋๋จธ์ค_2022' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] Lv1. ํ๊ท ๊ตฌํ๊ธฐ (0) | 2022.09.28 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] Lv1. ์ง์์ ํ์ (0) | 2022.09.28 |
[ํ๋ก๊ทธ๋๋จธ์ค] Lv2. ์ค์ฑํ ์ฌ๋ถ ํ์ ํ๊ธฐ [String, Date] (0) | 2022.09.26 |
[ํ๋ก๊ทธ๋๋จธ์ค] Lv1. ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์์ด๋ (0) | 2022.09.26 |
[ํ๋ก๊ทธ๋๋จธ์ค] Lv2. ์ ์ ์๊ฐ ๊ตฌํ๊ธฐ(1) [GROUP BY] (0) | 2022.09.26 |