프로그래머스 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을 사용하는 이유는 단순히 존재 여부만 확인하기 때문에 최적화된 형태로 사용됩니다.