2012-07-04 48 views
1

該標題大概措辭很糟糕。我有一些PostgreSQL表。有一個橋表,它也包含額外的數據,所以不是嚴格的橋樑,但也是這樣的。它會像這樣:SQL獲取包含來自橋表的兩行的行

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

我想要編譯包含我選擇的兩名球員都這樣game_ids的列表。

所以我能找到的例子,遊戲中哪位球員1234播放器上播放9876

可以有球員在一場比賽中2和10之間。

回答

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 
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 = '' 
+0

看起來'[A]'和'[B]'別名對PostgreSQL不起作用。 – vyegorov