SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS LEFT JOIN ANIMAL_INS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID
JOIN
: 두 테이블 합치기
문제에서 JOIN
한 후 INS 테이블에 없었던 내용들은 ID가 NULL로 들어온다.
WHERE
에 IS NULL
을 적어두면 OUTS에는 있지만 INS에는 없는 값들만 출력할 수 있다.
SELECT INS.ANIMAL_ID, INS.NAME
FROM ANIMAL_INS AS INS JOIN ANIMAL_OUTS AS OUTS
WHERE INS.ANIMAL_ID = OUTS.ANIMAL_ID AND OUTS.DATETIME <= INS.DATETIME
ORDER BY INS.DATETIME
📌
JOIN
VSLEFT JOIN
JOIN
(INNER JOIN
): Table A와 Table B의 교집합을 조회
LEFT JOIN
(LEFT OUTER JOIN
): Table A와 Table B의 합집합을 조회
SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS INS LEFT JOIN ANIMAL_OUTS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY INS.DATETIME
LIMIT 3