首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql体育排行榜

Mysql体育排行榜
EN

Stack Overflow用户
提问于 2013-04-28 17:39:41
回答 1查看 918关注 0票数 0

我正在创建一个体育页面,我已经到了无法解决自己的问题的地步。

我的问题是,我不知道如何在每一场比赛后分别存储每支球队的位置。以下是我想要实现的目标:

为了创建排名表,我有两个表:

俱乐部: id_clubs,名称

结果: matchid,matchday,hometeam,awayteam,homegoals,awaygoals,date,id_league

从结果表中,我创建了我的排名表,其设置如下:

代码语言:javascript
运行
复制
SELECT
    name AS Team,
    Sum(P) AS P,
    Sum(W) AS W,
    Sum(D) AS D,
    Sum(L) AS L, 
    SUM(F) as F,
    SUM(A) AS A,
    SUM(GD) AS GD,
    SUM(Pts) AS Pts  
FROM ( 
    SELECT *,
        hometeamid Team,  
        1 P, 
        IF(homegoal > awaygoal,1,0) W, 
        IF(homegoal = awaygoal,1,0) D, 
        IF(homegoal < awaygoal,1,0) L, 
        homegoal F, 
        awaygoal A, 
        homegoal-awaygoal GD, 
        CASE WHEN homegoal > awaygoal THEN 3
             WHEN hometeam = awaygoal THEN 1
             ELSE 0
        END PTS 
    FROM results
    WHERE id_league = '$leagueid'
      AND homegoal IS NOT NULL
      AND awaygoal IS NOT NULL

    UNION ALL 

    SELECT *,
        awayteamid, 
        1, 
        IF(homegoal < awaygoal,1,0), 
        IF(homegoal = awaygoal,1,0), 
        IF(homegoal > awaygoal,1,0), 
        awaygoal, 
        homegoal, 
        awaygoal-homegoal GD, 
        CASE WHEN homegoal < awaygoal THEN 3
             WHEN homegoal = awaygoal THEN 1
             ELSE 0
        END 
        FROM results
        WHERE id_league = '$leagueid' 
          AND awaygoal IS NOT NULL
          AND homegoal IS NOT NULL
) AS tot 
JOIN clubs t ON tot.Team=t.id_clubs  
GROUP BY Team  
ORDER BY
    SUM(Pts) desc,
    SUM(GD) desc

希望有人能给出一些建议或解决方案。

EN

回答 1

Stack Overflow用户

发布于 2013-04-29 11:35:48

如果您的问题是从结果表中检索订单号,这里有一个类似的讨论,这可能正是您所需要的:MySQL - Get row number on select

要选择第一个n匹配,您可以在按匹配id分组后执行LIMIT n

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16261560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档