1

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

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

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

假设表 r6 的经理 A 得分 = 1,表 r10 的经理 A 得分 = 5。所以经理 A 的收益率得分为 5-1 = 4。基本上是 (r10.scores - r6.scores)将是总分。

现在我需要获得所有经理 AZ 的总分数(10-6 的分数),并且还能够找到最高的分数。

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

补充资料:

表名称:

1- ranking_gw6_260912 AS r6
2- ranking_gw10_201012 AS r10 

使用领域:

1- rx.manager_id
2- rx.scores

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

nb gw 指的是足球比赛的比赛周,该网站是梦幻足球的,我试图让比赛的获胜者在第 6 场比赛到第 10 场比赛中得分最高。遗憾的是,数据库只存储最新分数覆盖前一周的 on。所以我不能得到每周的分数,因此我只剩下总分了。然而,我们每周都有一个备份表,我将使用它来获得中间分数。

4

3 回答 3

3

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

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
        );

或者

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
于 2012-11-02T07:12:53.600 回答
1

你可以简单地做

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 
于 2012-11-02T07:16:55.363 回答
0

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

检索每个表的分数,当您收到数据循环并减去并跟踪您运行时的最高值时。除非你有数以百万计的经理,否则它会足够快。

于 2012-11-02T07:09:37.113 回答