본문 바로가기
🛠️Skill/CodingTest

[프로그래머스] Lv3. 오랜 기간 보호한 동물(1) (2) / LEFT JOIN

by Istj_eff 2022. 12. 5.

오랜 기간 보호한 동물(1)

https://school.programmers.co.kr/learn/courses/30/lessons/59044

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

데이터 조회

# 1
SELECT INS.animal_id, INS.datetime, OUTS.animal_id
FROM animal_ins INS LEFT JOIN animal_outs OUTS ON INS.animal_id = OUTS.animal_id
WHERE OUTS.animal_id IS NULL 
-- INS테이블에는 있으나 입양가지 않은 animal_id는 OUTS 테이블에서 NULL로 뜨기때문에 OUTS.animal_id IS NULL 로 입양을 못간 동물 데이터 조회

 

정답 코드

SELECT INS.name 'NAME', INS.datetime 'DATETIME'
FROM animal_ins INS LEFT JOIN animal_outs OUTS ON INS.animal_id = OUTS.animal_id
WHERE OUTS.datetime IS NULL
ORDER BY INS.datetime 
LIMIT 3

오랜 기간 보호한 동물(2)

https://school.programmers.co.kr/learn/courses/30/lessons/59411

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

-- 보호 기간이 긴 데이터 조회
SELECT B.datetime - A.datetime
FROM animal_ins A JOIN animal_outs B ON A.animal_id = B.animal_id
ORDER BY (B.datetime - A.datetime) DESC

 

정답코드

SELECT A.animal_id, A.name
FROM animal_ins A INNER JOIN animal_outs B USING(animal_id)
ORDER BY (B.datetime - A.datetime) DESC # DATEDIFF(B.datetime, A.datetime)
LIMIT 2 -- 두마리만

 

댓글