1

这个标题的措辞大概很糟糕。我有一些 PostgreSQL 表。有一个桥表,它也保存额外的数据,所以严格来说不是桥,但也以这种方式运行。它是这样的:

player_game
===========
player_game_id PK
player_id FK -> player
game_id FK -> game
other stuff.

我想编译一个包含我选择的两个玩家的所有此类 game_id 的列表。

例如,我可以找到玩家 1234 与玩家 9876 一起玩的游戏。

一场比赛可以有 2 到 10 名玩家。

4

2 回答 2

2
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
于 2012-07-04T12:46:59.443 回答
0

您需要使用别名将表连接到自身。(对于两个表),然后根据需要指定两个 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 = ''
于 2012-07-04T12:50:35.433 回答