我想看看玩家 A (9) 和玩家 B (14) 是否曾经同时进入过同一轮,一轮中有很多玩家参加过多次比赛。这是回合和玩家之间多对多关系的中间表
table: entries
id | roundID | PlayerID
5 | 7 | 14
4 | 6 | 2
3 | 5 | 14
2 | 5 | 9
1 | 4 | 9
我显然希望返回第 5 轮 ID,但这需要什么 SQL 语句呢?加入?
我可以通过让玩家 A 和 B 玩的所有回合分别循环遍历 As 回合并循环遍历 A 的每次迭代中的 Bs 回合来寻找匹配,但这似乎不必要地昂贵。
最佳答案
类似这样的东西应该可以工作,基本上只获取指定玩家的每轮 ID 的所有 PlayerID 输入的计数,并限制只显示具有倍数的玩家。
SELECT
roundID
FROM
entries
WHERE
PlayerID IN (9, 14)
GROUP BY
roundID
HAVING
COUNT(*)>1
关于php - MySQL根据2个id查找一个ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23049725/