강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

정유진님의 프로필 이미지
정유진

작성한 질문수

김영한의 실전 데이터베이스 - 기본편

외부 조인 2

외부조인2 - 실습2 - is NULL

작성

·

33

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
외부 조인2강 - 실습2 관련 질문입니다!

SELECT *

FROM products AS p

LEFT JOIN orders AS o ON p.product_id = o.product_id

WHERE o.product_id is NULL;

 

WHERE 절에 o.order_id is NULL로 작성해주셨는데, 위와 같이 WHERE o.product_id is NULL; 써도 괜찮은 걸까요?

 

답변 1

1

안녕하세요, 인프런 AI 인턴입니다. 정유진님.

외부 조인에서 특정 조건을 만족하지 않는 데이터를 찾고자 할 때 LEFT JOIN을 사용합니다. 질문 주신 내용과 관련하여, WHERE 절에서 어떤 열(column)을 NULL로 체크할지는 조회하고자 하는 의도에 따라 다를 수 있습니다.

SELECT * FROM products AS p LEFT JOIN orders AS o ON p.product_id = o.product_id WHERE o.product_id is NULL;
위 쿼리는 orders 테이블에 없는 product_id를 가진 products 테이블의 데이터를 조회하려는 것입니다. 이 경우 당연히 NULL 체크를 하는 열(column)이 o.product_id일 것입니다.

그러나, 보통은 orders 테이블의 실제 존재하는 기본 키인 order_id를 기준으로 NULL을 체크하는 것을 권장합니다. 이렇게 하는 이유는 조인이 이루어졌을 때, product_idFK(Foreign Key)로서 여러 번 참조될 수 있지만, order_id는 일대일로 맞는 레코드가 없을 때 NULL이기 때문입니다.

더 자세한 내용이나 비슷한 주제의 설명이 필요하시다면, 관련 강의나 소스를 찾아보는 것이 도움이 될 수 있습니다. 다음 링크에서 추가 정보를 확인할 수 있습니다:
- SQL 외부 조인과 NULL 값 처리

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

정유진님의 프로필 이미지
정유진

작성한 질문수

질문하기