[프로그래머스 / ORACLE] 오랜 기간 보호한 동물(1)

2023. 10. 19. 22:09SQL/ORACLE

 

내코드

--1
SELECT *
FROM (
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME) T 
WHERE ROWNUM <= 3

--2
SELECT * 
FROM (SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
WHERE A.ANIMAL_ID NOT IN (SELECT B.ANIMAL_ID FROM ANIMAL_OUTS B)
ORDER BY A.DATETIME) T
WHERE ROWNUM <=3

느낀점

문제가 너무 길어서 못 가져왔다.

JOIN 을 활용하는 문제이긴하나 다른 풀이방식도 존재하기때문에 두가지 쿼리문을 가져왔다.

어떤게 더 효율적인지 정확히는 모르겠다만 SELECT문 안에 SELECT문을 한번 더 사용하는 것보다 JOIN을 사용하는 것이 더 효율적인것으로 알고있다.