使用SQL或PHP选择值

时间:2017-08-28 08:19:31

标签: mysql

我对SQL知之甚少,因此我在我的项目中使用PHP做了很多变通方法,因为我无法弄清楚要使用的查询,因此在PHP中使用循环和数组做它似乎总是比较容易

好的,我的问题 - >我有一个我知道的变量seasonId,它引用了一个赛季(在一个赛季内)参考了锦标赛的参赛者,这些锦标赛参考了它的结果和它的主要参与者(其中包含所有玩家数据,但没有特定于锦标赛的信息)。比赛和比赛之间的关系是1 to 1,比赛选手和球员之间的关系是n to 1。我想要实现的是显示每个玩家的结果总和(位于results表中)。

现在我的解决方案是选择所有拥有seasonId = x的锦标赛并通过循环迭代它们,选择他们的玩家并在某个地方计算玩家结果。这个解决方案很难看,而且这次比使用SQL更难。

我的表结构:

Season   | Tourney   | TourneyPlayer | Results  | Player
------   | -------   | ------------- | -------  | --------
SeasonId | TourneyId | tp_id         | resultid | playerid
           SeasonId  | tourneyid     | result   
                       resultid
                       playerid

所以让我说我有赛季X并且它有内线赛事X1,X2,X3,每场比赛只有一名球员Y,因此在锦标赛中有Y1,Y2,Y3,那么查询将返回3个结果的总和(对于玩家Y在3场比赛中。)

谢谢:)

1 个答案:

答案 0 :(得分:0)

一些联接应该可以解决问题:

SELECT SUM(result)
FROM   results r
JOIN   tourneyplayer tp on tp.resultid = r.resultid
JOIN   tourney t ON t.tourneyid = tp.tourneyid
WHERE  t.seasonid = x
相关问题