从单独的列中排序mysql数据

时间:2011-08-25 22:52:13

标签: mysql

我有一个跟踪游戏统计数据的数据库。假设每场比赛由三轮打到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一样。我能够编写一个有效的查询,除了添加重复的游戏。

我认为我需要进行自我加入,然后对行进行排序?我无法绕着这个缠绕我的头!非常感谢您的帮助!

1 个答案:

答案 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