
문제에서 요구한 바는 다음과 같다.
"아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요."
따라서 벤다이어그램으로 표시하면 다음과 같다.
사실 맥락이 저번에 풀었던 문제랑 매우 유사하다.
LEFT JOIN을 먼저 하고, WHERE B.컬럼 IS NULL이라는 조건을 추가해줌으로써 교집합을 제거해 위의 그림과 같은 상태를 만든다.
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME
LIMIT 3;