SQL 쿼리 연습/JOIN

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

김세진 2023. 3. 19. 17:06
반응형

 

 

 

 

프로그래머스

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

programmers.co.kr

 

 

풀이 (MySQL)

 

ANIMAL_INS에는 존재하지만 ANIMAL_OUTS에는 존재하지 않는 데이터를 찾아, DATETIME이 가장 낮은 3개의 데이터를 조회해야 한다.

 

 

LEFT OUTER JOIN을 할 경우 위의 그림과 같이 JOIN하는 테이블에 없는 데이터도 함께 조회가 된다. 이후, WHERE절을 이용해 JOIN하는 테이블의 외래키 값이 없는 경우만 조회하도록 하자.

 

SELECT
    INS.NAME
    , INS.DATETIME
FROM
    ANIMAL_INS AS INS
LEFT OUTER JOIN
    ANIMAL_OUTS AS OUTS
ON
    INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE
    OUTS.ANIMAL_ID IS NULL
ORDER BY
    DATETIME
LIMIT 3

 

 

 

반응형