고객이랑 주문 테이블 두 개 놓고 연습 중인데, 두 조인이 뭐가 다른 건지 감이 안 잡힙니다.
SELECT c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;
이렇게 하면 주문한 적 있는 고객만 나오더라고요. 근데 저는 아직 주문 한 번도 안 한 고객까지 전부 보고 싶거든요. 그래서 이걸로 바꿔봤는데,
SELECT c.name, o.amount
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;
이번엔 주문 없는 고객도 나오는데 amount 자리가 NULL로 찍혀요. 이게 정상인가요? INNER랑 LEFT가 결과 집합에서 정확히 어떤 차이가 나는 건지, 어떤 상황에 뭘 써야 하는지 정리 좀 해주세요.