我有4张表:团队成员和球员的出生(其中我有城市和国家)。
发布于 2016-04-04 08:05:29
您需要检索"Team“表两次,并在它们之间进行连接。
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表:我猜如果您打算将其用作过滤器,那么了解播放器表中玩家的国家是有意义的。
https://stackoverflow.com/questions/36392313
复制相似问题