상황: 이번에는 이용자들 별로 획득한 포인트를 학생들에게 이메일로 보내려고 합니다. 이를 위한 자료를 가공해봅시다. 특히 users 테이블에는 있으나 point_users 에는 없는 유저가 있어요. 이 유저들의 경우 point를 0으로 처리합시다.
문제: 다음과 같은 결과 테이블을 만들어봅시다.
user_id: 익명화된 유저들의 아이디
email: 유저들의 이메일
point: 유저가 획득한 포인트
나눠서 생각하기
1) 필요한 정보 불러오기
SELECT u.user_id,
u.email,
p.point
FROM users u LEFT JOIN point_users p ON u.user_id = p.user_id --users 테이블을 기준으로 묶어주기
2) NULL값 0 처리
SELECT u.user_id,
u.email,
COALESCE(p.point, 0) AS point --강의 5주차 참조
FROM users u LEFT JOIN point_users p ON u.user_id = p.user_id
3) 정렬 추가 / 완성✨
SELECT u.user_id,
u.email,
COALESCE(p.point, 0) AS point
FROM users u LEFT JOIN point_users p ON u.user_id = p.user_id
ORDER BY 3 DESC --p.point 기준 내림차순 정렬