首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择查询Oracle 11g

选择查询Oracle 11g
EN

Stack Overflow用户
提问于 2016-04-04 07:00:54
回答 1查看 43关注 0票数 0

我有4张表:团队成员和球员的出生(其中我有城市和国家)。

EN

回答 1

Stack Overflow用户

发布于 2016-04-04 08:05:29

您需要检索"Team“表两次,并在它们之间进行连接。

代码语言:javascript
复制
SELECT Game_Date,
   Player.First_Name || ' ' || Player.Last_Name AS "PLAYER NAME",
   UPPER(Team1.Team_Name) AS "HOME TEAM",
   UPPER(Team2.Team_Name) AS "VISITING TEAM",
   Team1.Team_City ||' '|| Team1.Team_Name as "TEAM",
   Birth_Place1.Country
FROM Game
     JOIN Team Team1 ON Game.Team_Home_ID = Team1.Team_ID
     JOIN Team Team2 ON Game.Team_Visitor_ID = Team2.Team_ID
     JOIN Player Player1 ON Player1.Team_ID = Team1.Team_ID
     JOIN Player Player2 ON Player2.Team_ID = Team2.Team_ID
     JOIN Birth_Place Birth_Place1 ON Birth_Place1.Birth_Place_ID = Player1.Birth_Place_ID
     JOIN Birth_Place Birth_Place2 ON Birth_Place2.Birth_Place_ID = Player2.Birth_Place_ID
WHERE Birth_Place1.Country = Birth_Place2.Country
     AND Season = '2015-2016'
     AND Game_Date = '10-10-2015'
     AND Birth_Place1.Country NOT IN ('CAN', 'USA')
ORDER BY Birth_Place1.Country;

我不确定这是否是正确的请求,但是您明白了:诀窍就在"Birth_Place1.Country = Birth_Place2.Country“WHERE子句中。

我还重写了WHERE子句,覆盖了国家,因为它看起来只过滤了两个国家。

您可能会考虑检查一下您的架构,特别是Birth_Place表:我猜如果您打算将其用作过滤器,那么了解播放器表中玩家的国家是有意义的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36392313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档