トリビア ゲームがあり、次の 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 スコアランク
58217 380 1
12354 80 3
32324 0 2