三张表上的关系代数
Relational Algebra on 3 Tables
我在为作业中的问题形成关系代数查询时遇到问题。我必须找到在特定日期赢得比赛的所有球队的名称。
数据库现在有以下三个模式:
Team(teamid,teamname,stadium)
Player(playerid,name,teamid, height)
Game (gameid, hometeamid, guestteamid, date, home-score, guest-score)
我对如何执行此操作感到有点困惑,因为我似乎需要的表没有任何共同点(游戏和团队)。我看到 Game 有主队和客队的 ID,但是你怎么知道哪支球队赢了?
我必须回答的确切问题是:
找出 2015 年 6 月 1 日获胜的所有球队的名称。 (假设一支球队一天只打一场比赛,平局是不可能的)
试试这个
(select teamname from Team t, Game g
where t.teamid = g.hometeamid
and home-score > guest-score and date = '6/1/15')
UNION
(select teamname from Team t, Game g
where t.teamid = g.guestteamid
and guest-score > home-score and date = '6/1/15')
第一个查询代表主队赢的比赛,第二个查询代表客队赢的比赛。两者的结合就是要求的答案
我在为作业中的问题形成关系代数查询时遇到问题。我必须找到在特定日期赢得比赛的所有球队的名称。
数据库现在有以下三个模式:
Team(teamid,teamname,stadium)
Player(playerid,name,teamid, height)
Game (gameid, hometeamid, guestteamid, date, home-score, guest-score)
我对如何执行此操作感到有点困惑,因为我似乎需要的表没有任何共同点(游戏和团队)。我看到 Game 有主队和客队的 ID,但是你怎么知道哪支球队赢了?
我必须回答的确切问题是: 找出 2015 年 6 月 1 日获胜的所有球队的名称。 (假设一支球队一天只打一场比赛,平局是不可能的)
试试这个
(select teamname from Team t, Game g
where t.teamid = g.hometeamid
and home-score > guest-score and date = '6/1/15')
UNION
(select teamname from Team t, Game g
where t.teamid = g.guestteamid
and guest-score > home-score and date = '6/1/15')
第一个查询代表主队赢的比赛,第二个查询代表客队赢的比赛。两者的结合就是要求的答案