|
| 1 | +-- 1. 내가 진행중, 진행 완료한 미션 모아서 보는 쿼리(페이징 포함) |
| 2 | + |
| 3 | +``` |
| 4 | +SELECT * FROM member_mission as mm |
| 5 | +WHERE member_id = 1 // 사용자 아이디는 1이라 가정 |
| 6 | +AND mission_status in ("in_progress", "completed") |
| 7 | +ORDER BY mm.updated_at DESC |
| 8 | +LIMIT 10 offset (n-1)*10; |
| 9 | +``` |
| 10 | + |
| 11 | +-- 2. 리뷰 작성하는 쿼리, 사진의 경우는 일단 배제 |
| 12 | +``` |
| 13 | +SELECT member.name, review.score, review.body, review.created_at |
| 14 | +FROM review |
| 15 | +JOIN member ON review.member_id = member.id |
| 16 | +``` |
| 17 | +--3. 홈 화면 쿼리 (현재 선택 된 지역에서 도전이 가능한 미션 목록, 페이징 포함) |
| 18 | + |
| 19 | +``` |
| 20 | +SELECT region.name AS region_name, |
| 21 | + (SELECT COUNT(*) FROM member_mission WHERE member_id = 1 AND status = 'complete') AS complete_count, |
| 22 | + store.name AS store_name, |
| 23 | + mission.deadline, mission.mission_spec, mission.reward, |
| 24 | + member_mission.status |
| 25 | +FROM member_mission |
| 26 | +JOIN mission ON member_mission.mission_id = mission.id |
| 27 | +JOIN store ON mission.store_id = store.id |
| 28 | +JOIN region ON store.region_id = region.id |
| 29 | +JOIN member ON member_mission.member_id = member.id |
| 30 | +WHERE member.id = 1 |
| 31 | +AND mission.created_at < (SELECT created_at FROM mission where id = 1) |
| 32 | +ORDER BY mission.created_at DESC |
| 33 | +LIMIT 10; |
| 34 | +``` |
| 35 | + |
| 36 | +-- 4. 마이 페이지 화면 쿼리 |
| 37 | +``` |
| 38 | +SELECT member.name, member.email, member.point |
| 39 | +FROM member |
| 40 | +WHERE member.id = 1; |
| 41 | +``` |
0 commit comments