Php 从成绩表生成体育联赛表
我有一张表格,里面有联赛中所有球队的赛程和结果。我正试图根据结果生成一个排名表。我以为它可以工作,但在手动计算排名时,它与MySql输出的表不匹配Php 从成绩表生成体育联赛表,php,mysql,select,join,count,Php,Mysql,Select,Join,Count,我有一张表格,里面有联赛中所有球队的赛程和结果。我正试图根据结果生成一个排名表。我以为它可以工作,但在手动计算排名时,它与MySql输出的表不匹配 $query_away = " Select teams.team_name, SUM(if(fixtures.away_team_score > fixtures.home_team_score,3,0)) AS W, SUM(IF(fixtures.away_team_score = fixtures.home_team_s
$query_away = " Select teams.team_name,
SUM(if(fixtures.away_team_score > fixtures.home_team_score,3,0)) AS W,
SUM(IF(fixtures.away_team_score = fixtures.home_team_score,1,0)) AS D,
SUM(IF(fixtures.away_team_score < fixtures.home_team_score,0,0)) AS L
FROM teams
INNER JOIN fixtures ON teams.team_name = fixtures.home_team
GROUP BY fixtures.home_team
ORDER BY W DESC";
如果同时在主场和客场获胜,此查询应获得三分。打成平局只需要一笔钱,因为不管球队是主场还是客场。对于损失,实际上不需要求和,因为你只需要加上一堆零
SELECT teams.team_name,
SUM(if(teams.team_name = fixtures.away_team
AND fixtures.away_team_score > fixtures.home_team_score,3,0))
+ SUM(if(teams.team_name = fixtures.home_team
AND fixtures.home_team_score > fixtures.away_team_score,3,0)) AS W,
SUM(IF(fixtures.away_team_score = fixtures.home_team_score,1,0)) AS D,
0 AS L
FROM teams
INNER JOIN fixtures ON teams.team_name = fixtures.home_team
OR teams.team_name = fixtures.away_team
GROUP BY teams.team_name
ORDER BY W DESC
使用示例数据会有所帮助。您正在加入teams.team\u name=fixtures.home\u team上的teams表。这意味着当你做
客场球队得分>主场球队得分时,你将为输球的球队增加3分。@Dagon fiddle补充说,请看问题。@Don'tPanic你能解释一下吗?我想如果你改为在队名=客场球队中加入,你应该会得到你期望的结果。
SELECT teams.team_name,
SUM(if(teams.team_name = fixtures.away_team
AND fixtures.away_team_score > fixtures.home_team_score,3,0))
+ SUM(if(teams.team_name = fixtures.home_team
AND fixtures.home_team_score > fixtures.away_team_score,3,0)) AS W,
SUM(IF(fixtures.away_team_score = fixtures.home_team_score,1,0)) AS D,
0 AS L
FROM teams
INNER JOIN fixtures ON teams.team_name = fixtures.home_team
OR teams.team_name = fixtures.away_team
GROUP BY teams.team_name
ORDER BY W DESC