SQL
[MYSQL] IN 구문에 NULL이 포함될 때 주의 사항
choiwonjin
2024. 8. 8. 17:27
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/273712
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- IN 사용
SELECT ITEM_ID
, ITEM_NAME
, RARITY
FROM ITEM_INFO
NATURAL JOIN ITEM_TREE
WHERE ITEM_ID NOT IN (SELECT PARENT_ITEM_ID
FROM ITEM_TREE)
ORDER BY ITEM_ID DES
NULL 값은 정해지지 않은 불확실한 값이기 때문에 IN 구문으로의 정확한 처리가 불가능하다.
따라서 NULL 값이 있는 경우, IN 구문 사용은 피해야 한다.
- ITEM_ID가 다른 아이템의 PARENT_ITEM_ID에 나타나지 않는 아이템 찾기
SELECT I.ITEM_ID
, ITEM_NAME
, RARITY
FROM ITEM_INFO AS I
LEFT JOIN ITEM_TREE AS T
ON I.ITEM_ID = T.PARENT_ITEM_ID
WHERE T.PARENT_ITEM_ID IS NULL
ORDER BY I.ITEM_ID DESC
ITEM_ID와 PARENT_ITEM_ID가 같도록 조인하고, PARENT_ITEM_ID가 NULL인 경우를 필터링
반응형