我有一个包含两个表 tblPlayers 和 tblMatches 的数据库。
tblPlayers 包含以下字段:playerID、playerName。
tblMatches 包含 matchID、scorer1ID、scorer2ID、scorer3ID。
我需要运行一个查询来计算球员的总进球数,并将其与他们的 playerID 一起返回。
我尝试了以下方法:
SELECT
tblPlayers.playerID, tblPlayers.playerName, count(*) AS goals
FROM
tblPlayers, matches
WHERE
(tblPlayers.playerID = tblMatches.scorer1ID
OR
tblPlayers.playerID = tblMatches.scorer2ID
OR
tblPlayers.playerID = tblMatches.goalscorer3ID)
GROUP BY tblPlayers.playerID
ORDER BY goals DESC
但是,这并不能按要求工作,因为 count 函数不允许球员在一场比赛中得分超过一个球(例如,如果球员进了三个球,他的 ID 将出现在 scorer1ID 字段, scorer2ID字段和 scorer3ID 字段,但计数只返回值 1,当它需要为 3 时)。
希望这是有道理的,过去几天我一直在努力解决这个问题!非常感谢任何帮助。