
SQL 공부중 입니다. ✍✍✍
문제
https://school.programmers.co.kr/learn/courses/30/lessons/59044
풀이
SELECT AI.NAME, AI.DATETIME
FROM ANIMAL_INS AI
LEFT OUTER JOIN ANIMAL_OUTS AO
ON AI.ANIMAL_ID = AO.ANIMAL_ID
WHERE AO.ANIMAL_ID IS NULL
ORDER BY AI.DATETIME ASC
LIMIT 3;
두 테이블 간 연결된 외래키 (ANIMAL_ID)를 기준으로 한 테이블에 없는 값을 추출하는 것이 포인트였습니다. 이를 위해 LEFT OUTER JOIN, WHERE IS NULL 구문을 통해 ANIMAL_INS에만 있고 ANIMAL_OUTS에는 없는 값 (보호소에 들어왔지만 아직 입양되지 못한 동물들)을 구할 수 있었습니다.🦝🦝🦝
저의 풀이 이외에 아래와 같이
SELECT NAME, DATETIME
FROM ANIMAL_INS
WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_OUTS)
ORDER BY DATETIME
LIMIT 3
서브쿼리로 간단히 해결한 풀이도 볼 수 있었습니다.🐔🐔🐔
감사합니다.🦨🦨🦨