【发布时间】:2013-07-31 02:53:06
【问题描述】:
在此查询中,我必须列出为完全相同的球队效力的一对球员及其 playerID 和 playerName。如果一名球员为 3 支球队效力,则另一个球员必须为完全相同的 3 支球队效力。不多,不多。如果两名球员目前没有为任何球队效力,他们也应该被包括在内。查询应返回 (playerID1, playername1, playerID2, playerName2) 且不重复,例如如果玩家 1 信息在玩家 2 之前,则不应有另一个元组包含玩家 2 信息在玩家 1 之前。
例如,如果球员 A 为洋基队和红袜队效力,球员 b 为洋基队、红袜队和道奇队效力,我不应该得到他们。他们都必须为洋基队和红袜队效力,而没有其他人。现在,如果球员为同一支球队效力,这个查询可以找到答案。
player(playerID: integer, playerName: string)
team(teamID: integer, teamName: string, sport: string)
plays(playerID: integer, teamID: integer)
现在我的查询是
SELECT p1.playerID, p1.playerName, p2.playerID, p2.playerName
FROM player p1, player p2, plays
WHERE p1.teamID = p2.teamID AND teamID in.....
在此之后我被困在如何处理它上。有关如何解决此问题的任何提示。谢谢你的时间。
【问题讨论】:
-
我们正在使用哪个数据库?
-
对不起,我有一个本地数据库我正在使用,但我不知道如何把它放在这里。
-
哪个数据库服务器?一个版本也可能是相关的
-
我正在使用 postgres 并创建了一个小型数据库进行测试,但我不认为要解决这个问题,我们需要一个数据库。抱歉,术语不太好。刚开始学习 SQL。
-
PostgreSQL 的哪个版本?