我有一张桌子"分数"具有以下结构:
C:\Windows\System32\drivers\etc\hosts
如您所见,每个竞技场可以有多个级别。
我的问题:我如何将每个级别的所有最快时间移动到一个新表中" topscores"?
我希望新表包含每个竞技场+级别的所有最快时间,保持与第一个表相同的结构。
答案 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
强>