【发布时间】:2016-04-01 15:29:57
【问题描述】:
我有问题。 (SQL初学者)。我有两张桌子。
球员(nr, player_id, team_id, name, points, season)
Teams (team_id, team_name, season) - 有一个唯一的 team_id 但team_name 可以根据不同的赛季而有所不同。
我想在特定赛季中对单个 player_id 的所有点求和,我可以这样做:)
SELECT SUM(players.points),
players.player_id,
players.team_id,
players.season,
players.nr,
players.name
FROM players
WHERE season='2015/2016'
GROUP BY player_id
ORDER BY SUM(players.points) DESC
LIMIT 30
这对我来说很完美:) 但是,我不知道如何加入团队表来获得
teams.team_name 对应特定季节与 WHERE clousure 相匹配。在这种情况下,season='2015/2016' 具体而言。如果我想总结 2015/2016 赛季球员的积分,我还需要从 2015/2016 赛季获得 team_name。我尝试了 LEFT JOIN 但没有成功:/
这是我的代码。
SELECT players.player_id,
players.nr,
players.name,
players.team_id,
SUM(players.points),
players.season
FROM players
WHERE players.sezon='2015/2016'
LEFT JOIN teams
ON (teams.team_id=players.team_id AND teams.season=players.season )
GROUP BY player_id
ORDER BY SUM(points) DESC
LIMIT 30
感谢您的努力。
【问题讨论】:
-
我假设
players.season与players.sezon只是这里的复制/粘贴错误? -
是的。在我的示例中使用英语单词。 teams.season=players.season
-
如果您愿意,请考虑遵循以下简单的两步操作: 1. 如果您还没有这样做,请提供适当的 DDL(和/或 sqlfiddle),以便我们可以更轻松地复制问题。 2. 如果您尚未这样做,请提供与步骤 1 中提供的信息相对应的所需结果集。