首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从两个表中减去几个用户的两个分数。Mysql

从两个表中减去几个用户的两个分数。Mysql
EN

Stack Overflow用户
提问于 2012-11-02 14:59:28
回答 3查看 491关注 0票数 1

我需要访问几个表,实际上它们是相同的表,但较旧的版本,并获得每个经理从两个表中减去分数的最大值。

假设我们的表r6和r10有一个名为scores的字段。

我需要从两个表中获得分数,然后从旧的(在旧的表中)减去新的分数(从最新的表中),以获得两个期间之间的经理分数。

假设表r6的经理A的得分=1,表r10的经理A的得分=5。因此,经理A的收益率得分为5-1 = 4。这基本上是(r10.score-r6.score),这将是totalScore。

现在我需要得到所有经理A-Z的totalScore (10-6分),也可以找到最高的一个。

问题是,如何在mysql中实现这一点,如果不可能,你有什么建议?我正在使用php btw。

附加信息:

表的名称:

代码语言:javascript
复制
1- ranking_gw6_260912 AS r6
2- ranking_gw10_201012 AS r10 

使用的字段:

代码语言:javascript
复制
1- rx.manager_id
2- rx.scores

这两个表中都存在这些字段。

注: gw指的是比赛周的足球比赛,该网站是为梦幻足球和我试图获得比赛的获胜者谁有最高的分数从比赛周6到比赛周10。可悲的是,数据库只存储最新的得分覆盖了前一周。所以我不能得到每周的分数,所以我只能得到总分。然而,我们每周都有一个备份表,我将用它来获得两个分数之间的值。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-02 15:12:54

由于两个表中都存在字段,因此请使用INNER JOIN

代码语言:javascript
复制
SELECT  r6.manager_ID, (r6.scores - r10.scores) totalScore
FROM    Table1 AS r6
        INNER JOIN  Table2 AS r10 
            ON r6.manager_ID = r10.manager_ID
WHERE   (r6.scores - r10.scores) = 
        (
            SELECT MAX(totalScore)
            FROM
            (
                SELECT  (r6.scores - r10.scores) totalScore
                FROM    Table1 AS r6
                        INNER JOIN  Table2 AS r10 
                            ON r6.manager_ID = r10.manager_ID
            ) cc
        );

  • SQL Fiddle Demo (two queries included)
  • SQL Fiddle Demo (with tie score)

代码语言:javascript
复制
SELECT  r6.manager_ID, (r6.scores - r10.scores) totalScoreByHighest
FROM    Table1 AS r6
        INNER JOIN  Table2 AS r10 
            ON r6.manager_ID = r10.manager_ID
ORDER BY totalScoreByHighest DESC
票数 3
EN

Stack Overflow用户

发布于 2012-11-02 15:16:55

您可以简单地执行以下操作

代码语言:javascript
复制
SELECT r10.scores - r6.scores 
    FROM ranking_gw10_201012 AS r10 
    JOIN ranking_gw6_260912 AS r6 ON r6.manager_id = r10.manager_id
ORDER BY r10.scores - r6.scores 
票数 1
EN

Stack Overflow用户

发布于 2012-11-02 15:09:37

用php或任何你正在使用的语言来做。

当您接收到数据循环时,检索每个表的分数,并在遍历时减去并跟踪最高值。除非你有数以百万计的经理,否则这已经足够快了。

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

https://stackoverflow.com/questions/13190731

复制
相关文章

相似问题

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