๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/59044
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
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 _INTAKE |
A354597 | 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 _OUTCOME |
A354597 | 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 |
๋ด๊ฐ ์์ฑํ ์ฝ๋
SELECT AI.NAME, AI.DATETIME
FROM ANIMAL_INS AI LEFT JOIN ANIMAL_OUTS AO
ON AI.ANIMAL_ID=AO.ANIMAL_ID
WHERE AO.ANIMAL_ID IS NULL
ORDER BY AI.DATETIME
LIMIT 3;
์ฝ๋ ์ค๋ช
- SELECT AI.NAME, AI.DATETIME : ANIMAL_INS ํ ์ด๋ธ์ NAME ์ปฌ๋ผ๊ณผ DATETIME ์ปฌ๋ผ์ ๊ฐ์ ธ์จ๋ค.
- FROM ANIMAL_INS AS AI LEFT JOIN ANIMAL_OUTS AO : ๋ ํ ์ด๋ธ์ ๊ฐ๊ฐ AI์ AO๋ก ์ ์ํ๊ณ LEFT JOIN์ ์ด์ฉํ์ฌ ๋ ํ ์ด๋ธ์ ํฉ์น๋ค.
- ON AI.ANIMAL_ID = AO.ANIMAL_ID : ANIAML_ID๊ฐ ๊ฐ์ ๋ฐ์ดํฐ๋ง ํฉ์น๋ค.
- WHERE AO.ANIAML_ID IS NULL : AO ํ ์ด๋ธ์ ANIMAL_ID๊ฐ ๋น์ด์๋ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์จ๋ค.
- ORDER BY AI.DATETIME : AI ํ ์ด๋ธ์ DATETIME์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
- LIMIT 3 : ๊ฐ์ฅ ์์์ ์๋ ๋ฐ์ดํฐ 3๊ฐ๋ง ๊ฐ์ ธ์จ๋ค.
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ๐ฌ ์๊ณ ๋ฆฌ์ฆ ํ์ด(SQL)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_์ํ ๋ณ ์คํ๋ผ์ธ ๋งค์ถ ๊ตฌํ๊ธฐ (0) | 2024.11.20 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_์นดํ ๊ณ ๋ฆฌ ๋ณ ๋์ ํ๋งค๋ ์ง๊ณํ๊ธฐ (1) | 2024.11.19 |
ํ๋ก๊ทธ๋๋จธ์ค_์ธ๊ธฐ์๋ ์์ด์คํฌ๋ฆผ (0) | 2024.11.15 |
ํ๋ก๊ทธ๋๋จธ์ค_12์ธ ์ดํ์ธ ์ฌ์ ํ์ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ (4) | 2024.11.14 |
ํ๋ก๊ทธ๋๋จธ์ค_์ง๋ฃ๊ณผ๋ณ ์ด ์์ฝ ํ์ ์ถ๋ ฅํ๊ธฐ (1) | 2024.11.13 |