📌 오늘 학습 키워드
- INNER JOIN / LEFT JOIN
- CROSS JOIN
📖 오늘 학습한 내용을 나만의 언어로 정리하기
[JOIN 함수의 예시]
<Customer 테이블>
Customer ID | First name | Last name |
1 | John | Oliver |
2 | James | Gates |
3 | Kelly | Hill |
4 | Alf | Loft |
<Orders 테이블>
Order ID | Customer ID | Item |
5001 | 1 | Towel |
5002 | 1 | Shoes |
5003 | 2 | T-shirt |
5004 | 2 | Bag |
5005 | 1 | Pen |
5006 | 5 | Chair |
1) Inner Join을 하는 경우
- Customer 테이블에 있는 고객 중, 주문을 하지 않은 고객의 데이터는 포함되지 않는다.
- Orders 테이블에 있는 주문 중, Customer 테이블에 정보가 없는 값은 포함되지 않는다.
➡️ Orders 테이블의 Order ID 칼럼 데이터 중 5006에 대한 정보가 누락된다.
➡️ Customers 테이블의 Customer ID 3,4 에 대한 정보가 누락
2) Customer left join Orders를 하는 경우
- Customers 테이블에 정보는 있지만, 주문을 하지 않아 Orders 테이블에는 없는 정보는 NULL로 표시된다.
➡️ 주문을 했는지 여부와 관계 없이 Customers 테이블의 모든 정보를 가져오고 싶은 경우에 사용한다.
3) Orders left join Customers 를 하는 경우
- Orders 테이블에 정보는 있지만, 주문을 하지 않아 Customers 테이블에는 없는 정보는 NULL로 표시된다.
➡️ 회원 가입(혹은 탈퇴)을 했는지 여부와 관계 없이 Orders 테이블의 모든 정보를 가져오고 싶은 경우에 사용한다.
❌ 학습하며 겪었던 문제점 & 에러
1번째, 3번째 쿼리의 결과는 동일하게 나오는데, 2번째 쿼리의 결과만 다르게 나왔다.
정답과 동일한 결과값이 나오는 쿼리는 1,3 번인데 left join 과 inner join 중 어떤 것을 사용해야 하는지 이해가 가지 않았다.
+ 추가적으로, 고객 1명당 평균 결제 금액을 구하는 부분도 오류가 있는 것 같다는 의견을 전달받았다.
🎯 내일 학습할 내용
- 5주차 강의에서 사용하는 쿼리문을 많이 활용하고 계신다는 정보를 들어서, 내일은 5주차 강의부터 다시 차근차근 들어보려고 한다.
- 과제를 푸는데 시간이 오래 걸려서 마음이 급해졌지만, 그래도 어제보다 나아진 오늘의 나를 보며 차근차근 실력을 쌓아가야겠다고 생각했다.