250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต 19(์—†์–ด์ง„ ๊ธฐ๋ก ์ฐพ๊ธฐ) ๋ณธ๋ฌธ

๐Ÿ“ Coding Test/MySQL

[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต 19(์—†์–ด์ง„ ๊ธฐ๋ก ์ฐพ๊ธฐ)

ใ…… ใ…œ ใ…” ใ…‡ 2022. 2. 26. 19:58
728x90

์˜ค๋Š˜๋ถ€ํ„ฐ๋Š” ๋“œ๋””์–ด LEVEL 3 ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ํ•œ๋‹ค!

 

 

 

 

๋ฌธ์ œ
ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. 
ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, 
ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE
๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ๋ณดํ˜ธ ์‹œ์ž‘์ผ, ๋ณดํ˜ธ ์‹œ์ž‘ ์‹œ ์ƒํƒœ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

ANIMAL_OUTS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์—์„œ ์ž…์–‘ ๋ณด๋‚ธ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. 
ANIMAL_OUTS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, 
ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME
๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ์ž…์–‘์ผ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 

ANIMAL_OUTS ํ…Œ์ด๋ธ”์˜ ANIMAL_ID๋Š” ANIMAL_INS์˜ ANIMAL_ID์˜ ์™ธ๋ž˜ ํ‚ค์ž…๋‹ˆ๋‹ค.


์ฒœ์žฌ์ง€๋ณ€์œผ๋กœ ์ธํ•ด ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž…์–‘์„ ๊ฐ„ ๊ธฐ๋ก์€ ์žˆ๋Š”๋ฐ, ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๊ธฐ๋ก์ด ์—†๋Š” ๋™๋ฌผ์˜ ID์™€ ์ด๋ฆ„์„ ID ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

 

 

 

 

 

 

์˜ˆ์‹œ

 

 

 

 

 

 

 

 

 

 

๋ฌธ์ œ ํ’€์ด

1) JOIN

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS O
LEFT JOIN ANIMAL_INS I
ON O.ANIMAL_ID = I.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY ANIMAL_ID

LEFT JOIN์€ ์™ผ์ชฝ์— ์˜ค๋Š” ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ, ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ํ…Œ์ด๋ธ”๊ณผ ๋น„๊ตํ•ด ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’์ด ์žˆ์œผ๋ฉด ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๊ณ , ์—†์œผ๋ฉด NULL๋กœ ํ‘œ์‹œํ•œ๋‹ค. 

 

์ž…์–‘์„ ๊ฐ„ ๊ธฐ๋ก์€ ์žˆ์ง€๋งŒ, ์ž…์–‘์„ ์˜จ ๊ธฐ๋ก์ด ์—†๋Š” ๋™๋ฌผ์„ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ, 

WHERE I.ANIMAL_ID IS NULL์„ ์กฐ๊ฑด์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค. 

 

 

 

 

 

 

2) NOT IN

SELECT ANIMAL_ID, NAME
FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN 
(SELECT ANIMAL_ID
FROM ANIMAL_INS)

WHERE ์กฐ๊ฑด ์ ˆ์— NOT IN์„ ์ด์šฉํ•˜๋ฉด

JOIN ์—†์ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

728x90
Comments