IT/SQL

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

무지개는 환상 2024. 1. 20. 16:17

<ANIMAL_INS> & <ANIMAL_OUTS> 테이블 구조

ANIMAL_INS 테이블 구조
ANIMAL_OUTS

 

<문제>

 

 

 

<문제 풀이>

SELECT AI.NAME, AI.DATETIME
FROM ANIMAL_INS AS AI
    LEFT JOIN ANIMAL_OUTS AS AO
    ON AI.ANIMAL_ID = AO.ANIMAL_ID
WHERE AO.ANIMAL_ID IS NULL
ORDER BY AI.DATETIME
LIMIT 3;

 

입양을 못 간 동물리스트를 알아야 하는 문제이다.

입양을 못 갔다면 animal_outs 테이블에 ID 값이 없을 것이기 때문에 WHERE 절에 ISNULL 함수를 사용하여 필터링을 해주었다. 또한 NULL값을 가진 컬럼을 위해서 내부조인이 아닌 LEFT 함수를 사용하였다.

 

 

* LEFT JOIN : 기준이 되는 테이블을 왼쪽에 두고 오른쪽에 JOIN 하는 함수를 붙임 (일치하는 값이 없다면 NULL 값으로 반환)

* RIGHT JOIN 기준이 되는 테이블을 오른쪽에 두고 왼쪽에 JOIN 하는 함수를 붙임

 

따라서 테이블 A와 B가 있을 경우,

A LEFT JOIN B = B RIGHT JOIN  A  와 동일하다!