데이터분석 기록일지

문제풀이/스파르타 - sql 문제

[사전캠프] SQL 과제 | Lv3. 이용자의 포인트 조회하기

야하루 2024. 6. 26. 14:51

 


 

 


 

#풀이
select u.user_id, 
		email,
		if(p.user_id is null, 0, point) point
from users u left join point_users p on u.user_id =p.user_id
order by 3 desc

 

-> 일단 두 테이블을 합쳐야 하므로 join으로 연결해준다.

이때 users 테이블이 point_users 테이블보다 유저 데이터가 많으므로  left join으로 연결해준다.

users 테이블에는 있지만 point_users에는 없는 유저는 p.user_id 값이 null이다.

그러므로 조건문으로 p.user_id가 null인 값은 포인트 0을, 아니면 원래의 point 값을 가지도록 조건을 걸어준다.

그러고 order by로 내가 정한 조건 결과의 내림차순으로 정렬해주면 끝

 

실행 결과