我有一个跟踪游戏统计数据的数据库。假设每场比赛由三轮打到10分。所以我表的一部分看起来像这样:
game | round1home | round1away | round2home | round2away | round3home | round3away
-----------------------------------------------------------------------------------
1 | 10 | 7 | 8 | 10 | 10 | 5
2 | 10 | 4 | 10 | 6 | 6 | 10
3 | 3 | 10 | 9 | 10 | 7 | 10
4 | 10 | 5 | 6 | 10 | 10 | 3
5 | 8 | 10 | 10 | 7 | 7 | 10
6 | 10 | 8 | 4 | 10 | 10 | 9
我需要提取的是一系列最低得分的5轮比赛。换句话说,使用上表我希望结果返回这些行:
game 4: 3 points
game 2: 4 points
game 1: 5 points
game 4: 5 points
game 2: 6 points
我的问题是,我可能会在列表中出现不止一次同样的游戏,就像上面的例子中的游戏2一样。我能够编写一个有效的查询,除了添加重复的游戏。
我认为我需要进行自我加入,然后对行进行排序?我无法绕着这个缠绕我的头!非常感谢您的帮助!
答案 0 :(得分:2)
您可以执行类似
的操作SELECT * FROM
(
SELECT game_id, round1away AS away_score
ORDER BY round1away
LIMIT 5
UNION
SELECT game_id, round2away AS away_score
ORDER BY round2away
LIMIT 5
)a
ORDER BY away_score
LIMIT 5