12. SQL - 내가 틀린 것들 (#2)

Jason·2026년 1월 12일

SQL

목록 보기
12/47

SQL 내가 틀린 것들 #2 — LEFT JOIN 패턴 익히기

💡 3문제 더 풀면서 새로 발견한 약점들.
"없는 것 찾기" 패턴 집중 연습했다.


🔴 1. INNER JOIN vs LEFT JOIN

문제

주문을 한 번도 하지 않은 유저를 조회해줘.

내가 쓴 거 (틀림)

SELECT u.user_id, u.name
FROM users u
JOIN orders o ON u.user_id = o.user_id
WHERE o.order_id IS NULL

정답

SELECT u.user_id, u.name
FROM users u
LEFT JOIN orders o ON u.user_id = o.user_id
WHERE o.order_id IS NULL

교훈

JOIN동작
INNER JOIN매칭되는 것만 (교집합)
LEFT JOIN왼쪽 전부 + 매칭 (없으면 NULL)

"없는 것 찾기"는 무조건 LEFT JOIN!

INNER JOIN 쓰면 없는 애들이 아예 안 나옴 ㅠ


🔴 2. WHERE vs HAVING (또 틀림)

내가 쓴 거 (틀림)

HAVING o.order_id IS NULL

정답

WHERE o.order_id IS NULL

교훈

용도사용
행 필터링, NULL 체크WHERE
집계함수 조건HAVING

IS NULL은 WHERE에서!

#1에서도 WHERE vs HAVING 틀렸는데 또 틀림 ㅋㅋ
반복 연습 필요...


🟡 3. 테이블 별칭 선언 누락

내가 쓴 거 (틀림)

FROM products p
LEFT JOIN order_items
ON p.product_id = o.product_id
                  ↑ o가 뭔데?

정답

FROM products p
LEFT JOIN order_items o ON p.product_id = o.product_id
                      ↑ 여기서 o 선언!

교훈

별칭 쓸 거면 JOIN할 때 바로 선언!

LEFT JOIN 테이블명 별칭 ON 조건

🟡 4. NOT EXISTS / SELECT 1 (새로 배움)

SELECT user_id, name
FROM users u
WHERE NOT EXISTS (
    SELECT 1 FROM orders o WHERE o.user_id = u.user_id
);

SELECT 1 이 뭐야?

  • EXISTS는 "결과가 있냐 없냐" 만 봄
  • 뭘 SELECT하든 상관없음
  • SELECT 1은 가볍고 명확해서 관례적으로 사용
-- 전부 동일!
WHERE EXISTS (SELECT 1 FROM ...)
WHERE EXISTS (SELECT * FROM ...)
WHERE EXISTS (SELECT 999 FROM ...)

✅ 5. LEFT JOIN + IS NULL 패턴 (습득 완료!)

마지막 문제에서 100점!

-- "없는 것 찾기" 공식
SELECT ...
FROM A
LEFT JOIN B ON A.id = B.id
WHERE B.id IS NULL;

예시: 프로젝트 없는 직원

SELECT e.emp_id, e.name
FROM employees e
LEFT JOIN projects p ON e.emp_id = p.emp_id
WHERE p.project_id IS NULL;

이 패턴 이제 손에 익었다! 👊


📋 현재 상태

항목상태메모
JOIN 문법🟢FROM JOIN ON 순서
날짜 범위🔴AND로 연결 (아직 연습 필요)
LEFT JOIN vs INNER🟢습득!
LEFT JOIN + IS NULL완전 습득!
WHERE vs HAVING🟡아직 헷갈림
ROW_NUMBER🟡OVER() 구조
LAG🟢이해 완료
NOT EXISTS🟡개념만 이해

💪 다음 목표

  • WHERE vs HAVING 확실히 구분하기
  • 날짜 범위 문제 더 풀어보기
  • ROW_NUMBER 패턴 반복 연습

📝 3문제 더 풀고 나니 "없는 것 찾기" 패턴은 확실히 잡혔다.
반복이 답이다!

profile
Data Analyst | Thoughts Become Things. 할 수 있다고 생각하면 할 수 있다. 할 수 없다고 생각하면 할 수 없다. | www.linkedin.com/in/명수-제-7ab843200

0개의 댓글