mysql - 将最高分数从"得分"移到新表中到" topscores"

时间:2015-10-21 18:01:40

标签: mysql

我有一张桌子"分数"具有以下结构:

C:\Windows\System32\drivers\etc\hosts

如您所见,每个竞技场可以有多个级别。

我的问题:我如何将每个级别的所有最快时间移动到一个新表中" topscores"?

我希望新表包含每个竞技场+级别的所有最快时间,保持与第一个表相同的结构。

1 个答案:

答案 0 :(得分:0)

您可以在第一次创建时使用CREATE TABLE ... AS

CREATE TABLE topscores AS
SELECT name, lastname, arena, `level`, time
FROM scores s
WHERE (arena, `level`, time) IN (
   SELECT arena, `level`, MIN(time) AS `time`
   FROM scores
   GROUP BY arena, `level`);

可能更好的方法是创建视图(无需更新或刷新):

CREATE VIEW topscores
AS
SELECT name, lastname, arena, `level`, time
FROM scores s
WHERE (arena, `level`, time) IN (
   SELECT arena, `level`, MIN(time) AS `time`
   FROM scores
   GROUP BY arena, `level`);

SqlFiddleDemo