0

我與恭敬的屬性,TEAM(TeamName,TeamID)和播放器(TeamID,PlayerName,PlayerHeight)兩個關係簡單的關係代數查詢

我試圖找到所有的球隊的名字中,所有的玩家(該隊的)身高超過6英尺。

我的假設是TeamName和TeamID是相關的,所以說TeamName X有TeamID 1和PlayerName A,B,C可以有PlayerHeight 6,7,8和TeamID 1。

據我瞭解,我必須做的是 1.與球員的關係:項目PlayerHeight,TeamID(PLAYER) 2.不知怎麼計算,如果「每一個」獨立TeamID所有的PlayerHeight> 6回報TeamID 3.我不知道最後一部分,我知道前兩個是錯誤的。

請幫助,我很困惑,如果向我解釋,我會正確地學習它。謝謝!

+0

這是關係代數! – 2014-10-10 22:06:07

+0

對不起,刪除了標籤 – 2014-10-10 22:17:18

+0

π(teamname)(TEAM | x |(PLAYER - (σ(height <6)PLAYER))) – sqlvogel 2014-10-10 22:23:41

回答

0

集團由團隊,並採取只有那些沒有球員< =身高6

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 
+0

謝謝Juergen!有什麼方法可以在關係代數中表達這一點? – 2014-10-10 22:08:45

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 
+0

我忘了問它是關係代數格式而不是SQL,雖然它對於我設計時非常有幫助。謝謝!你可以把它翻譯成RA格式嗎? – 2014-10-10 22:09:48