我需要访问多个表,实际上它们是相同的表但是旧版本,并且从每个表的每个表获得最大的减去分数。
假设我们表r6和r10有一个名为score的字段。
我需要从两个表中得到分数,然后从旧表(在旧表中)中减去新分数(来自最新表)以获得经理在两个时期之间的分数。
假设表r6对于经理A得分= 1,而表r10对于经理A得分= 5.因此对于经理A,得分为5-1 = 4.这基本上是(r10.scores-r6。得分)这将是totalScore。
现在我需要为所有经理A-Z获得总分数(得分从10-6),并且也能够找到最高分数。
问题是,如何在mysql中实现,如果不可能,你建议什么?我正在使用php btw。
添加信息:
表名:
1- ranking_gw6_260912 AS r6
2- ranking_gw10_201012 AS r10
使用过的字段:
1- rx.manager_id
2- rx.scores
这两个表中都存在这些字段。
nb gw指的是足球比赛的游戏周,该网站用于幻想足球,我正在努力争取从第6周到第10周比赛得分最高的比赛的胜利者。可悲的是,数据库只存储上周的最新分数超过上一周。所以我不能得到每周得分,因此我留下了整体得分。然而,我们每个星期都有一个备份表,我将使用它来获得得分。
答案 0 :(得分: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
答案 1 :(得分: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
答案 2 :(得分:0)
用PHP或你正在使用的任何语言来做。
当您收到数据循环时,检索每个表的分数,并在运行时减去并记录最高值。除非你拥有数百万经理,否则它将足够快。