我无法在作业中为问题形成关系代数查询。我必须找到在特定日期赢得比赛的所有球队的名字。
数据库现在有以下三种模式:
Team(teamid,teamname,stadium)
Player(playerid,name,teamid, height)
Game (gameid, hometeamid, guestteamid, date, home-score, guest-score)
我对如何做到这一点有点困惑,因为我似乎需要的表没有任何共同点(游戏和团队)。我看到Game对于本垒打和客队都有一个id,但你怎么能找出哪支球队赢了?
我必须回答的确切问题是: 找到在2015年6月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')
第一个查询代表主队赢得的比赛,而第二个查询代表客队赢得的比赛。两者的结合将是必要的答案