我有两张表,一张包含分数,另一张包含游戏列表。游戏有不同类型的高分,例如打高尔夫球是根据谁的得分最低来判断的。
我正在尝试列出某个用户与其他用户相比的高分(包括将高分视为最低分的游戏。)
我的旧查询只是假设所有分数都是 MAX 分数,但现在我需要能够检查游戏的分数类型是否为“低”。我听说使用 CASE 可以解决这个问题,但我在试图到达游戏桌时撞到了一堵墙。
选择 s.game_id,fp.score FROM game_scores INNER JOIN 游戏 g ON s.game_id = g.id 内部联接 ( 选择 案子 当 g.score_type = 低 THEN MIN(score) 当 g.score_type = high THEN MAX(score) END 作为得分,game_id FROM game_scores 按游戏 ID 分组 ) fp ON s.game_id = fp.game_id AND s.score = fp.score WHERE s.user_id = 1