我需要访问几个表,实际上它们是相同的表,但较旧的版本,并获得每个经理从两个表中减去分数的最大值。
假设我们的表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。
附加信息:
表的名称:
1- ranking_gw6_260912 AS r6
2- ranking_gw10_201012 AS r10 使用的字段:
1- rx.manager_id
2- rx.scores这两个表中都存在这些字段。
注: gw指的是比赛周的足球比赛,该网站是为梦幻足球和我试图获得比赛的获胜者谁有最高的分数从比赛周6到比赛周10。可悲的是,数据库只存储最新的得分覆盖了前一周。所以我不能得到每周的分数,所以我只能得到总分。然而,我们每周都有一个备份表,我将用它来获得两个分数之间的值。
发布于 2012-11-02 15:12:54
由于两个表中都存在字段,因此请使用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-02 15:16:55
您可以简单地执行以下操作
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-02 15:09:37
用php或任何你正在使用的语言来做。
当您接收到数据循环时,检索每个表的分数,并在遍历时减去并跟踪最高值。除非你有数以百万计的经理,否则这已经足够快了。
https://stackoverflow.com/questions/13190731
复制相似问题