0516 TIL

looggi·2023년 5월 15일
0

TILs

목록 보기
73/114
post-thumbnail

SQL 문제풀기

오랜 기간 보호한 동물(1)

SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS INS
LEFT OUTER JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID=OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY INS.DATETIME ASC
LIMIT 3

LIMIT는 가장 마지막에 사용한다
LEFT OUTER JOIN으로 LEFT TABLE에 있는 값만 조회하고 싶을 때 RIGHT TABLE의 ID값이 없음을 조건(WHERE)으로 조회함(RIGHT의 어떤 칼럼 값이라도 무관함)

그리고 WHERE에서 RIGHT(OUT)테이블에 ID가 없음을 조건으로 사용했으므로
SELECT문에서 RIGHT(OUT)테이블의 칼럼을 사용해선 안된다
-> ID가 없으니 RIGHT TABLE에는 없는 레코드이므로 다른 값들도 존재하지 않고 따라서 빈 값으로 출력됨
LEFT TABLE에는 존재하므로 값이 정상 출력됨
오래된 순서로 출력해야하므로 ASC -> 오래된 게 숫자가 젤 작다 오름차순!

profile
looooggi

0개의 댓글