Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL体育排名查询,用于部分结果的体育项目_Php_Mysql_Sql - Fatal编程技术网

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场比赛,并且与另一个队至少有两场比赛的差距时,一盘获胜。如果不是,他们会像打网球一样打平局。