我有一张名为playergame.
| ID | 游戏ID | 球员 | 赢 |
|---|---|---|---|
| 1 | 1 | 乔恩 | 真的 |
| 2 | 1 | 担 | 真的 |
| 3 | 1 | 李 | 错误的 |
| 4 | 2 | 乔恩 | 错误的 |
| 5 | 2 | 乔恩 | 真的 |
| 6 | 3 | 李 | 真的 |
我想要让 jon 和 dan 赢得的所有游戏一起玩。我想我可以通过以下方式做到这一点:
SELECT count(*) as wins
FROM playergame
WHERE player = 'dan' AND player = 'jon' AND win = true
GROUP BY gameid
Run Code Online (Sandbox Code Playgroud)
但是我需要考虑到我想要将两行合并并查询为 1。我该怎么做?
如果你只想要 gameid ,这是最简单的方法:
select gameid
from playergame
where player in ('jon' , 'don')
and win = true
group by gameid
having count(distinct player) = 2
Run Code Online (Sandbox Code Playgroud)