Php MySQL体育排名查询,用于部分结果的体育项目
我有一个像这样的查询体育排名页面Php MySQL体育排名查询,用于部分结果的体育项目,php,mysql,sql,Php,Mysql,Sql,我有一个像这样的查询体育排名页面 SELECT name AS Team, SUM(P) AS P, SUM(W) AS W, SUM(D) AS D, SUM(L) AS L, SUM(F) as F, SUM(A) AS A, SUM(GD) AS GD, SUM(Pts) AS Pts FROM ( SELECT *, team1Id Team, 1 P, IF(team1Sets
SELECT
name AS Team,
SUM(P) AS P,
SUM(W) AS W,
SUM(D) AS D,
SUM(L) AS L,
SUM(F) as F,
SUM(A) AS A,
SUM(GD) AS GD,
SUM(Pts) AS Pts
FROM (
SELECT *,
team1Id Team,
1 P,
IF(team1Sets > team2Sets,1,0) W,
IF(team1Sets = team2Sets,1,0) D,
IF(team1Sets < team2Sets,1,0) L,
team1Games F,
team2Games A,
team1Games-team2Games GD,
CASE WHEN team1Sets > team2Sets THEN 3
WHEN team1Sets = team2Sets THEN 1
ELSE 0
END PTS
FROM ligas_match
WHERE groupId = 1
UNION ALL
SELECT *,
team2Id Team,
1,
IF(team1Sets < team2Sets,1,0),
IF(team1Sets = team2Sets,1,0),
IF(team1Sets > team2Sets,1,0),
team2Games,
team1Games,
team2Games-team1Games,
CASE WHEN team1Sets < team2Sets THEN 3
WHEN team1Sets = team2Sets THEN 1
ELSE 0
END PTS
FROM ligas_match
WHERE groupId = 1
) AS tot
JOIN ligas_team t ON tot.Team=t.id
GROUP BY Team
ORDER BY
SUM(Pts) desc,
SUM(GD) desc
这种结构非常适用于像足球这样没有部分成绩的体育联赛。但我正在努力让它为帕德尔网球联盟效力
在帕德尔联赛中,比赛分为n盘,赢得更多盘的球队赢得比赛,得3分。如果两队赢得相同数量的盘,则比赛被视为平局,两队各得1分。两盘也分为几局,谁在一盘中赢得更多的比赛,谁就赢得了该盘无法平局的胜利。现在,我将集合数据team1Sets、team2Sets、team1Games、team2Games也存储在matches表中,查询工作正常
但是,由于在matches表和sets表中存储集合数据是冗余的,我希望将集合数据存储在另一个名为ligas_集的表中,并在ligas_match.id=ligas_set.matchId上的两个表ligas_match和ligas_set之间进行某种连接
这是小提琴
期望的结果集是一个排名表,其中包括联赛/小组中的每支球队,他们进行的比赛p;他们的胜利,W;他们的画,D;他们的损失,我;他们每局比赛获胜,F;他们的每一盘比赛都输了,A;比赛胜负之差,GD;以及他们的总分,Pts
有人能帮上忙吗?考虑提供适当的DDL和/或SQLFIDLE以及所需的结果集。谢谢你指出,我不知道SQLFIDLE。得分与网球完全一样,对吧?嗯,有点像。每个联赛的赛数在分组表中设置,可以是2组,也可以是3组,但每个联赛的赛数始终相同。如果在两盘联盟的一场比赛中,a队赢了一盘,B队赢了另一盘,那么这场比赛是平局,不打额外的盘。当一个队打满6场比赛,并且与另一个队至少有两场比赛的差距时,一盘获胜。如果不是,他们会像打网球一样打平局。