三张表上的关系代数

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')

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