diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt
index f921b16..5783c1f 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/explorer/ExplorerQueryRepository.kt
@@ -90,20 +90,18 @@ class ExplorerQueryRepository(
     }
 
     fun getMemberDonationRankingTotal(creatorId: Long): Int {
-        val creatorMember = QMember("creator")
         val userMember = QMember("user")
 
         val donation = useCan.rewardCan.add(useCan.can).sum()
         return queryFactory
             .select(userMember.id)
-            .from(useCan)
-            .join(useCan.room, liveRoom)
-            .join(liveRoom.member, creatorMember)
-            .join(useCan.member, userMember)
+            .from(useCanCalculate)
+            .innerJoin(useCanCalculate.useCan, useCan)
+            .innerJoin(useCan.member, userMember)
             .where(
                 useCan.canUsage.eq(CanUsage.DONATION)
                     .and(useCan.isRefund.isFalse)
-                    .and(creatorMember.id.eq(creatorId))
+                    .and(useCanCalculate.recipientCreatorId.eq(creatorId))
             )
             .groupBy(useCan.member.id)
             .orderBy(donation.desc())
@@ -117,22 +115,20 @@ class ExplorerQueryRepository(
         offset: Long = 0,
         withDonationCan: Boolean
     ): List<MemberDonationRankingResponse> {
-        val creator = QMember("creator")
         val member = QMember("user")
 
         val donation = useCan.rewardCan.add(useCan.can).sum()
         return queryFactory
             .select(member, donation)
-            .from(useCan)
-            .join(useCan.room, liveRoom)
-            .join(liveRoom.member, creator)
-            .join(useCan.member, member)
+            .from(useCanCalculate)
+            .innerJoin(useCanCalculate.useCan, useCan)
+            .innerJoin(useCan.member, member)
             .offset(offset)
             .limit(limit)
             .where(
                 useCan.canUsage.eq(CanUsage.DONATION)
                     .and(useCan.isRefund.isFalse)
-                    .and(creator.id.eq(creatorId))
+                    .and(useCanCalculate.recipientCreatorId.eq(creatorId))
             )
             .groupBy(useCan.member.id)
             .orderBy(donation.desc(), member.id.desc())