노력에는 지름길이 없으니까요

프로그래머스 SQL - 없어진 기록 찾기 본문

SQL/프로그래머스

프로그래머스 SQL - 없어진 기록 찾기

데건 2024. 6. 26. 18:55
728x90

 

해결일 언어 레벨 테스트명
20240626 SQL level  3 없어진 기록 찾기

 

링크 : https://school.programmers.co.kr/learn/courses/30/parts/17046

 

 

 


 

천재지변으로 인해 일부 데이터가 유실되었습니다.

1) 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는

2) 동물의 ID와 이름을

3) ID 순으로 조회하는

SQL문을 작성해주세요.

 

 

 

 

내 코드

SELECT      ANIMAL_ID
            ,NAME #2
FROM        ANIMAL_OUTS
WHERE       ANIMAL_ID NOT IN ( #1
                SELECT ANIMAL_ID
                FROM    ANIMAL_INS
                )
ORDER BY    1 #3

 

 

 

개선점: INS랑 OUTS의 순서를 잠시 헷갈렸었다.

 

(SELECT     B.ANIMAL_ID
FROM       ANIMAL_INS B) -> 입양을 간(OUT) 동물들의 ID

 

  A.ANIMAL_ID NOT IN -> 입양을 간 동물의 ID에 포함되지 않는 수용시 ID (IN)

 

베스트 코드

-- 코드를 입력하세요
SELECT B.ANIMAL_ID, B.NAME 
FROM ANIMAL_INS A 
RIGHT OUTER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID 
WHERE A.DATETIME IS NULL 
    AND B.DATETIME IS NOT NULL 
ORDER BY B.ANIMAL_ID;

 

확실히 차집합이라면 INNER말고 OUTER JOIN을 쓰면 간편하긴 했겠다

 

 

728x90
반응형