【发布时间】:2013-05-05 15:22:22
【问题描述】:
我正在尝试查询我的数据库并且我有几个表。
第一张桌子是玩家桌子。这有 PlayerID 和 FirstName 以及一堆与此问题无关的其他内容。
我的另一张桌子是经验。这有 PlayerID、NatGames 和 Int Games。
我想做的是,将 NatGames 和 IntGames 加在一起并显示最高结果。我可以使用这样的 max 函数来做到这一点:
select max (natgames + intgames) AS "Most Expiercened" from experience;
当这两个数字相加时,它会显示最大的数字。
现在我想做的是显示这个人的名字,它应该来自 Player 表的 playerID。
我已经尝试了几个小时,但我无法做到这一点。我有这样的事情,但失败了:
SELECT Player.Firstname, Experience.Natgames, Experience.Intgames
FROM Player
INNER JOIN Experience
ON Experience.PlayerID = Player.PlayerID
INNER JOIN (
SELECT Experience.PlayerID, MAX(Natgames + IntGames) AS TotalExperience
FROM Experience
GROUP BY Experience.PlayerID
) as TotalExperience
ON Experience.PlayerID = TotalExperience.ID
AND (NatGames + Intgames) = TotalExperience.TotalExperience
;
【问题讨论】:
标签: sql oracle inner-join max