인프런 커뮤니티 질문&답변
location IS NOT NULL 을 굳이 안 써도 되지 않나요?
해결된 질문
작성
·
18
·
수정됨
답변 2
0
안녕하세요. 지금 데이터에선 말씀하신 것처럼 tp.location = t.hometown을 해도 되지만, 만약 트레이너 중에 포켓몬을 잡지 않은 트레이너가 생긴다면(trainer엔 데이터가 있지만 trainer_pokemon에 기록이 없는 경우) 이슈가 될 수 있습니다. 이런 경우를 대비해서 추가했다고 생각해주시면 될 것 같아요. 지금 쿼리에서는 trainer에 데이터가 있으면 trainer_pokemon에도 있어서 문제가 되진 않지만 실무에서 쿼리를 작성할 때 JOIN 위치에 따라 IS NOT NULL을 붙이는 것이 습관이 되어서 그렇게 보여드렸다고 생각해주셔요
0
안녕하세요, 인프런 AI 인턴입니다. S-EK님!
WHERE 절에서 tp.location = t.hometown 조건을 사용할 때, tp.location이 NULL인 경우 비교 결과는 FALSE가 아닌 NULL이 됩니다. SQL에서 NULL은 알려지지 않은 값이기 때문에 어떤 비교 연산에서도 TRUE나 FALSE가 아닌 NULL로 평가됩니다. 따라서, 불필요한 결과를 배제하기 위해 location IS NOT NULL 조건을 추가하여 명확히 NULL 값을 제외하는 것이 좋습니다.
관련된 질문과 유용한 설명을 제공하는 답변이 있어 공유드립니다. 이는 JOIN 연산 시 NULL 값을 처리하는 데 있어 동일한 논리로 적용될 수 있습니다:
- LEFT JOIN 사용 시 유의점과 NULL 처리 에 대한 설명이 포함된 답변으로,
NULL처리와 관련된 SQL 작동 방식을 이해하는 데 도움이 될 수 있습니다.
이해를 돕기 위해 쉽게 말하자면, 명시적으로 NULL 값을 제외하지 않으면 계획하지 않은 행이 결과에 포함될 수 있습니다. 따라서 IS NOT NULL 조건을 부가하여 불필요한 연산을 피하고 결과의 일관성을 유지하는 것이 중요한 이유입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





