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