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

JH Sim님의 프로필 이미지
JH Sim

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL

LEFT JOIN 리트코드 문제풀이

LEFT JOIN 문제풀이 중 질문이 있습니다.

작성

·

140

1

안녕하세요 

LEFT JOIN 문제 도중 궁금한 부분이 있어 질문드립니다. 

선생님께서 풀이해주신 부분은 where 절을 

o.id is null 로 풀이해주셨는데요. 

제가 작성한 쿼리는 

select  c.Name as Customers

from    Customers as c

        left join Orders as o on c.id = o.Customerid

where   o.CustomerId is null;

위와 같이 작성하였습니다. 

저는 Orders(주문) 테이블에 주문한 고객 id가 3, 1 두개 뿐이었으므로 1,3을 제외한 주문이 없기때문에 null인 값을 호출한다는 의미로 where   o.CustomerId is null; 을 작성하였는데요. 

쿼리 실행결과는 리트코드상에서 Success라고 뜨긴했지만 선생님이 풀이해주신 부분과 제 쿼리가 실행 중 어떤 차이점이 있을지 궁금합니다. 

답변 1

0

윤선미님의 프로필 이미지
윤선미
지식공유자

안녕하세요.

LEFT JOIN시, 왼쪽 테이블에는 존재하나 오른쪽 테이블에는 존재하지 않는 모든 컬럼들에 Null이 기록되게 됩니다.

그러니까 조인된 orders 테이블에 customerid가 NULL인 컬럼은 id도 NULL이 들어가있겠지요?

orders 테이블의 어떤 컬럼을 WHERE o.** IS NULL 조건으로 사용하셔도 결과는 같습니다.

JH Sim님의 프로필 이미지
JH Sim

작성한 질문수

질문하기