• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

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

20.04.27 17:08 작성 조회수 98

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 조건으로 사용하셔도 결과는 같습니다.