반응형
오늘도 출근 전 SQL 공부!
왠지.. 쉽게 풀 수 있을 것 같다는 생각이 들었지만
결과는.... 실패! 그래도 쿼리가 실행이 안되는 이유를 깨달았다.
1차 시도
SELECT customers.name as customers
FROM customers
JOIN orders ON customers.id = orders.customerid
GROUP BY customers.id
HAVING NOT IN orders.id
어떻게 풀어야 할까?
주문을 하지 않은 사람을 추출
JOIN으로 주문한 사람을 찾을 수 있음
원래 테이블에서 주문한 사람을 빼주면 되는데...
레프트 아우터 조인으로 주문이 없는 값은 NULL로 나오게 해서 찾으면 됨.
>>> 생각은 맞았는데 어떻게 구현해야 하는지 모름
2차 시도
결국 어떻게 해야 하는지는 알았는데 쿼리와 원리를 까먹어서 못푼 문제.
select name as Customers
from Customers c1
left outer join Orders o1
on c1.id = o1.customerId where o1.id IS null
아... 맞다 NULL을 찾을 땐 ID = NULL이 아니라
IS NULL, NOT NULL로 찾아야 하는데.... 배운걸 까먹어서 ㅠㅠ
근데 확실히 느끼는 건, 이론도 중요하지만 결국 실무다!
해봐야지 더 많이 알 수 있고 해봐야 더 기억에 남는다.
조금씩 앞으로 나아가는 느낌이 든다.
물론, 초보적인 QUERY 지만 하나하나 혼자 이해하고 해결할 수 있는 역량을 키워나가는게 나름 재미있다.
반응형
'직무강화 > SQL' 카테고리의 다른 글
SQL 학습 8일차 LEETCODE, Biggest Single Number (0) | 2024.08.26 |
---|---|
SQL 학습 7일차 LEETCODE 607. Sales Person. (EXIST, NOT EXIST) (0) | 2024.08.24 |
SQL 학습일지 5일차, 리트코드 182. Duplicate Emails 중복값 찾기 (0) | 2024.08.21 |
SQL 공부 4일차 LEETCODE, 181. Employees Earning More Than Their Managers (0) | 2024.08.20 |
SQL 3일차_LEETCODE. 175. Combine Two Tables (0) | 2024.08.20 |