我对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场比赛中。)
谢谢:)
答案 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