我有一个问答游戏,我想奖励用户进行 2 项活动:
1)正确回答
2)向问题池发送问题
我想查询特定玩家的得分和排名,我使用这个查询:
SELECT (correct*10+sent*30) AS score, @rank:=@rank+1 AS rank
FROM ( trivia_players
JOIN ( SELECT COUNT(*) AS sent, senderid
FROM trivia_questions
WHERE senderid='$userid'
) a
ON trivia_players.userid=a.senderid
)
ORDER BY score DESC
如果玩家在两个表中,即正确回答并发送了一个问题,它就会起作用。但如果玩家没有发送问题,它就不起作用
知道如何解决此查询吗?($userid 是给定的参数)
谢谢!
谢谢汤姆!唯一的问题是排名不正确:
userid score rank
58217 380 1
12354 80 3
32324 0 2