我有一张名为 flutter run
的表。
id | 游戏ID | 玩家 | 赢 |
---|---|---|---|
1 | 1 | 乔恩 | 真实 |
2 | 1 | 丹 | 真实 |
3 | 1 | 李 | 假 |
4 | 2 | 乔恩 | 假 |
5 | 2 | 乔恩 | 真实 |
6 | 3 | 李 | 真实 |
我想要让 jon 和 dan 一起赢得所有比赛。我想我可以通过以下方式做到这一点:
playergame
但是我需要考虑到我想将两行合并并查询为 1。我该怎么做?
答案 0 :(得分:5)
如果你只想要 gameid ,这是最简单的方法:
select gameid
from playergame
where player in ('jon' , 'don')
and win = true
group by gameid
having count(distinct player) = 2
答案 1 :(得分:0)
PIVOT 将为您提供适合您目的的表格格式。使用 PIVOT,您可以生成一个表,每个游戏 ID 一行,然后每个玩家一列,每个游戏 ID 的每个玩家的值是 true 和 false。
要了解有关如何使用 PIVOT 的更多信息,请查看 here。
然后就可以使用查询了
SELECT count(*) as wins
FROM playergame_pivot
WHERE Column_Dan = true AND Column_Jon = true