我与尊重的属性,TEAM(TeamName,TeamID)和PLAYER(TeamID,PlayerName,PlayerHeight)建立了两个关系
我正在尝试找到所有队员(该队员)的身高超过6英尺的球队名称。
我的假设是TeamName和TeamID是相关的,所以说TeamName X有TeamID 1而PlayerName A,B,C可以有PlayerHeight 6,7,8和TeamID 1.这些都是例子!
据我所知,我必须做的是 1.与玩家建立关系:project-PlayerHeight,TeamID(PLAYER) 2.以某种方式计算“为每个”单独的TeamID所有PlayerHeight> 6返回那个TeamID 我无法弄清楚最后一部分,我知道前两部分是错误的。
请帮忙,我很困惑,如果向我解释,我会正确学习。谢谢!
答案 0 :(得分:0)
由团队分组,只接受那些没有玩家select t.teamname
from team t
join player p on p.teamid = t.teamid
group by t.teamname
having sum(case when p.playerheight <= 6 then 1 end) = 0
答案 1 :(得分:0)
是的,您需要通过加入两个现有关系来创建玩家高度与团队之间的新关系。然而,在这种特殊情况下,你并不需要测试所有玩家。团队的高度大于阈值 - 您只需要测试团队的最短玩家的身高是否超过阈值。用SQL表示,可能如下所示:
SELECT TeamName, MIN(PLAYER.PlayerHeight) AS MinHeight
FROM TEAM
JOIN PLAYER
ON TEAM.TeamID = PLAYER.TeamID
GROUP BY TEAM.TeamName
HAVING MinHeight > 6