<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 와 동일하다!
'IT > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 - 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2024.01.20 |
---|---|
[MySQL] 프로그래머스 - 있었는데요 없었습니다 (0) | 2024.01.20 |
[MySQL] 프로그래머스 - 카테고리 별 도서 판매량 집계하기 (0) | 2024.01.20 |
[MySQL] 프로그래머스 - 자동차 평균 대여 기간 구하기 (0) | 2024.01.18 |
[MySQL] 프로그래머스 - 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.01.18 |