SQL从桥接表中获取包含两行的行

SQL从桥接表中获取包含两行的行,sql,postgresql,Sql,Postgresql,这个标题大概措词不当。我有一些PostgreSQL表。有一个桥接表,它也保存额外的数据,所以严格来说不是桥接,但也以这种方式工作。事情是这样的: player_game =========== player_game_id PK player_id FK -> player game_id FK -> game other stuff. 我想编译一个包含我选择的两名玩家的所有此类游戏ID的列表 例如,我可以找到玩家1234和玩家9876玩的游戏 一个游戏中可以有2到10名玩家。从玩

这个标题大概措词不当。我有一些PostgreSQL表。有一个桥接表,它也保存额外的数据,所以严格来说不是桥接,但也以这种方式工作。事情是这样的:

player_game
===========
player_game_id PK
player_id FK -> player
game_id FK -> game
other stuff.
我想编译一个包含我选择的两名玩家的所有此类游戏ID的列表

例如,我可以找到玩家1234和玩家9876玩的游戏

一个游戏中可以有2到10名玩家。

从玩家游戏pg1中选择pg1.game\u id
select pg1.game_id from player_game pg1
inner join player_game pg2 on pg1.game_id = pg2.game_id
where pg1.player_id = 1234
and pg2.player_id = 9876
group by pg1.game_id -- or : AND  pg1.player_game_id < pg2.player_game_id
在pg1.game\u id=pg2.game\u id上内部加入玩家\u game pg2 其中pg1.player_id=1234 和pg2.player_id=9876 按pg1.game\u id——或:和pg1.player\u game\u id
您需要使用别名将表连接到自身。(对于两个表),然后根据需要指定两个ID

 select *
 from player_game as A
 inner join player_game as B on A.game_id = B.game_id
 where A.player_id = '' and B.player_id = ''

看来
[A]
[B]
别名对PostgreSQL不起作用。