php - MySQL根据2个id查找一个ID

标签 php mysql sql database join

我想看看玩家 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/

相关文章:

Javascript 事件监听器触发 php 代码,反之亦然?

mysql - Logstash:MySQL 到 Elasticsearch(大表)?

mysql - Entity Framework 和数据库不可知编程,可能性?

mysql - SELECT 命令计算百分比

sql - Postgresql, hibernate "is not distinct"

PHP 读取 'get' 可能已设置或未设置的变量

php - 在OO PHP中捕获异常

php - html 标签内新行的正则表达式

php - 将数据从 MySQL 提取到 JSONArray(使用 PDO!)

python - "where()"在 SQLAlchemy 中如何工作