해결된 질문
작성
·
365
0
안녕하세요. 강의 듣고 실습문제를 따로 풀어보고 있는데요
1997년 이후에 단 한건도 주문하지 않은 고객 정보에 대해
저는 아래와 같이 인라인뷰를 안쓰고 바로 left 조인으로 했는데요.
이렇게 풀이를 해도 상관없을까요?
실행결과 자체는 같은데 혹시 먼가 빠뜨리거나 잘못생각하고 있는게 있나 궁금해서 문의드립니다.
풀이
SELECT *
FROM NW.customers A
LEFT JOIN NW.orders B
ON A.customer_id = B.customer_id
AND B.order_date >= TO_DATE('19970101', 'YYYYMMDD')
WHERE B.customer_id IS NULL
정답
select *
from nw.customers a
left join (select customer_id from nw.orders
where order_date >= to_date('19970101', 'yyyymmdd')
group by customer_id
) b on a.customer_id = b.customer_id
where b.customer_id is null;
답변 1
1
안녕하십니까,
네, 적어주신 SQL대로 사용하셔도 됩니다.
다만 제가 inline view로 변경하고 group by를 사용한 이유는 조인과 서브쿼리의 변환이 어떻게 되는지를 말씀드리기 위해서 적은 것입니다.
결과 자체만을 위해서라면 적어주신 SQL을 사용하시면 됩니다.
감사합니다.