프로그래머스 SQL kit
[JOIN] 없어진 기록 찾기 /JOIN대신 NOT EXSITS 사용하기
정호나
2024. 11. 1. 11:33
https://school.programmers.co.kr/learn/courses/30/lessons/59042
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
# NOT EXISTS 사용하기
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS O
WHERE NOT EXISTS
(SELECT 1
FROM ANIMAL_INS I
WHERE I.ANIMAL_ID = O.ANIMAL_ID
)
ORDER BY ANIMAL_ID, NAME
SELECT 1의 의미
- SELECT 1은 ANIMAL_INS 테이블에 O.ANIMAL_ID와 같은 ANIMAL_ID가 존재하는지 확인하는 용도로 사용됩니다.
- 이 구문에서 1은 실제로 반환되거나 사용되는 값이 아니라, 단지 행이 존재한다는 사실을 표현하는 자리표시자입니다.
- SQL 엔진은 SELECT 1 대신 SELECT *를 사용해도 결과는 동일합니다. 하지만 1을 사용하는 이유는 단순히 존재 여부만 확인하기 때문에 최적화된 형태로 사용됩니다.