3个表上的关系代数

时间:2017-06-22 17:53:06

标签: sql database relational-algebra

我无法在作业中为问题形成关系代数查询。我必须找到在特定日期赢得比赛的所有球队的名字。

数据库现在有以下三种模式:

Team(teamid,teamname,stadium)
Player(playerid,name,teamid, height)
Game (gameid, hometeamid, guestteamid, date, home-score, guest-score)

我对如何做到这一点有点困惑,因为我似乎需要的表没有任何共同点(游戏和团队)。我看到Game对于本垒打和客队都有一个id,但你怎么能找出哪支球队赢了?

我必须回答的确切问题是: 找到在2015年6月1日赢得的所有球队的名称。 (假设一个团队每天只玩一场比赛并且不能打平局)

1 个答案:

答案 0 :(得分: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')

第一个查询代表主队赢得的比赛,而第二个查询代表客队赢得的比赛。两者的结合将是必要的答案