
📌 [SQL 분석] JOIN 순서 바꿔도 될까? – rental vs customer 기준 차이 완전 정리!
SQL에서 조인의 방향성과 의미를 정말 잘 짚으신 거예요! 👍
✅ 결론부터 말하자면:
네, FROM customer c JOIN rental r ON c.customer_id = r.customer_id로 바꿔도 결과는 같습니다!
하지만... 정말로 완전히 같을까요? 왜 실무에서는 rental → customer 순서를 더 자주 쓰는지, 지금부터 핵심만 쏙쏙 정리해드릴게요! 😊
🧩 1️⃣ 두 방식 비교 – SQL JOIN 순서
순서 조인 방식
기존 | FROM rental r JOIN customer c ON r.customer_id = c.customer_id |
제안 | FROM customer c JOIN rental r ON c.customer_id = r.customer_id |
📌 JOIN 방향은 바뀌었지만
👉 ON 조건이 동일하다면 결과도 동일합니다.
✅ 2️⃣ 그런데 왜 rental → customer 순서를 더 자주 쓸까?
1️⃣ 🔍 문제의 출발점이 rental 기준이기 때문!
SELECT COUNT(r.rental_id)
- 이 쿼리의 핵심은 **대여 건수(rental)**를 세는 것입니다.
- 따라서 rental 테이블을 기준으로 두는 게 자연스럽습니다.
👉 기준 테이블은 SELECT와 GROUP BY의 중심이 됩니다.
2️⃣ 📉 효율성과 실행 계획
데이터 양을 보면:
rental: 약 16,000 rows
customer: 약 599 rows
- 많은 데이터를 먼저 불러와서 필요한 정보만 추리는 방식이 일반적입니다.
- JOIN 시, 많은 데이터를 가진 테이블을 먼저 지정하는 것이 성능상 더 효율적인 경우가 많습니다.
3️⃣ 🧠 읽는 흐름이 자연스러움
- "대여 기록(rental)을 기준으로"
- "누가(customer) 빌렸는지 확인"
- "그걸 GROUP BY로 집계"
즉, SQL은 읽는 방향도 매우 중요한데요 👇
✅ rental → customer는 데이터 흐름을 따라가기 쉬운 구조입니다.
📊 4️⃣ 요약 비교표 – 어느 방향이 좋을까?
항목 rental → customer customer → rental
기준 테이블 | rental (대여 중심) | customer (사람 중심) |
분석 초점 | 누가 얼마나 빌렸나 | 각 사람이 뭘 빌렸나 |
쿼리 결과 | ✅ 동일 | ✅ 동일 |
추천 기준 | SELECT, GROUP 기준 따라 | 동일하게 가능 |
🎯 최종 정리
🔁 JOIN 순서는 바꿔도 되지만,
📊 내가 어떤 데이터를 중심으로 보고 싶은지가 더 중요합니다!
🎥 "대여 중심" 분석이라면 → rental JOIN customer
👤 "고객 중심" 분석이라면 → customer JOIN rental
💡 이런 고민이 생길 때마다 SELECT와 GROUP BY를 먼저 보고 분석의 중심이 뭔지 파악해보세요.
그게 SQL JOIN의 핵심 사고입니다! 🧠✨
'기술블로그' 카테고리의 다른 글
📌Database 인덱스가 필요한 이유(MySQL) (0) | 2025.03.27 |
---|---|
📌 Django와 PostgreSQL의 관계 (0) | 2025.03.27 |
📌SQL 쿼리 사고 흐름 완전 정복 – 읽을 땐 아래에서, 쓸 땐 위에서! (0) | 2025.03.26 |
📌SQL 쿼리만 보고 테이블 구조 유추하는 방법 (0) | 2025.03.26 |
📌SQL Join 완전 정복 – 테이블 구조부터 조인 흐름까지! (0) | 2025.03.26 |