๐ ์์ด์ง ๊ธฐ๋ก ์ฐพ๊ธฐ
์ฒ์ฌ์ง๋ณ์ผ๋ก ์ธํด ์ผ๋ถ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋์์ต๋๋ค. ์ ์์ ๊ฐ ๊ธฐ๋ก์ ์๋๋ฐ, ๋ณดํธ์์ ๋ค์ด์จ ๊ธฐ๋ก์ด ์๋ ๋๋ฌผ์ ID์ ์ด๋ฆ์ ID ์์ผ๋ก ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID ๋์ USING (ANIMAL_ID)๋ ๊ฐ๋ฅ!
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS AS OUTS
LEFT JOIN ANIMAL_INS AS INS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.DATETIME IS NULL
ORDER BY OUTS.ANIMAL_ID
๐ ์์๋๋ฐ์ ์์์ต๋๋ค
๊ด๋ฆฌ์์ ์ค์๋ก ์ผ๋ถ ๋๋ฌผ์ ์ ์์ผ์ด ์๋ชป ์ ๋ ฅ๋์์ต๋๋ค. ๋ณดํธ ์์์ผ๋ณด๋ค ์ ์์ผ์ด ๋ ๋น ๋ฅธ ๋๋ฌผ์ ์์ด๋์ ์ด๋ฆ์ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ๋ณดํธ ์์์ผ์ด ๋น ๋ฅธ ์์ผ๋ก ์กฐํํด์ผํฉ๋๋ค.
SELECT OUTS.ANIMAL_ID AS ANIMAL_ID, OUTS.NAME AS NAME
FROM ANIMAL_OUTS AS OUTS
LEFT JOIN ANIMAL_INS AS INS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.DATETIME > OUTS.DATETIME
ORDER BY INS.DATETIME;
๐ ์ค๋ ๊ธฐ๊ฐ ๋ณดํธํ ๋๋ฌผ(1)
์์ง ์ ์์ ๋ชป ๊ฐ ๋๋ฌผ ์ค, ๊ฐ์ฅ ์ค๋ ๋ณดํธ์์ ์์๋ ๋๋ฌผ 3๋ง๋ฆฌ์ ์ด๋ฆ๊ณผ ๋ณดํธ ์์์ผ์ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ๋ณดํธ ์์์ผ ์์ผ๋ก ์กฐํํด์ผ ํฉ๋๋ค.
SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS AS INS
LEFT JOIN ANIMAL_OUTS AS OUTS
USING (ANIMAL_ID)
WHERE OUTS.DATETIME IS NULL
ORDER BY INS.DATETIME
LIMIT 3;
๐ ์ค๋ ๊ธฐ๊ฐ ๋ณดํธํ ๋๋ฌผ(2)
์ ์์ ๊ฐ ๋๋ฌผ ์ค, ๋ณดํธ ๊ธฐ๊ฐ์ด ๊ฐ์ฅ ๊ธธ์๋ ๋๋ฌผ ๋ ๋ง๋ฆฌ์ ์์ด๋์ ์ด๋ฆ์ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ๋ณดํธ ๊ธฐ๊ฐ์ด ๊ธด ์์ผ๋ก ์กฐํํด์ผ ํฉ๋๋ค.
SELECT INS.ANIMAL_ID, INS.NAME
FROM ANIMAL_INS AS INS
LEFT JOIN ANIMAL_OUTS AS OUTS
USING (ANIMAL_ID)
WHERE OUTS.DATETIME IS NOT NULL
ORDER BY OUTS.DATETIME - INS.DATETIME DESC
LIMIT 2;
'SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQL] Programmers : Level 4 (0) | 2021.03.26 |
---|---|
[SQL] Programmers : Level 2(2) (0) | 2021.03.10 |
[SQL] Programmers : Level 2(1) (0) | 2021.03.10 |
[SQL] Programmers : Level 1(2) (0) | 2021.03.09 |
[SQL] Programmers : Level 1(1) (0) | 2021.03.08 |
๋๊ธ