一个查询中的MySQL多个连接

时间:2017-01-04 09:52:42

标签: mysql join

我有这个问题:

SELECT L.Season, L.Team, L.Position, L.Round, 
        SUM(M.WL LIKE '%W') AS Won,
        SUM(M.WL LIKE '%L') AS Lost,
        SUM(M.WL = 'D') AS Drawn,
        F.Position,
        P.PlayerID, P.Surname, P.FirstName, SUM(P.Goals) AS G
FROM `LadderPositions` AS L
INNER JOIN RoundsPerSeason AS R ON R.Rounds = L.Round AND R.Season = L.Season
INNER JOIN MatchDetails AS M ON L.Season=.M.Season AND L.Team=M.Team
INNER JOIN FinalPositions AS F ON L.Season=.F.Season AND L.Team=F.Team
INNER JOIN PlayerDetails AS P ON L.Season=.P.Season AND L.Team=P.Team
WHERE L.Team = '$Team'
GROUP BY Season

我正在尝试制作一个季节总结,它将显示赛季,决赛前的阶梯位置,决赛后的阶梯位置,赢得比赛,失去和被吸引,然后是踢出最多目标的球员以及他们踢球的目标数量特定球队的每个赛季。

我从LadderPositions和FinalPositions表获得了我需要的输出,但是我没有从MatchDetails或PlayerDetails表中获得正确的输出。

这是我的输出样本......

Season|Team|Position|Round|Won|Lost|Drawn|Position|PlayerID|Surname|FirstName|G
1934|ABC|7||21|2786|5572|0|7|387|BEE|Henry George (Judda)|5355

如果我将INNER JOIN移除到PlayerDetails,则Win-Loss数字是正确的,但是将INNER JOIN添加到PlayerDetails会输出Win-Loss为2786-5572。

PlayerDetails每年都会返回球队名单中的第一名球员,而不是目标最多的球员,目标总数也不正确 - 本例中球员的最大进球数应为45,其为a不同于一个输出的玩家。

查询也需要大约18秒才能执行。

0 个答案:

没有答案