Join Mysql配对/配对

Join Mysql配对/配对,join,mysqli,group-by,matchmaking,Join,Mysqli,Group By,Matchmaking,我目前正在开发一款1v1网络游戏,在尝试匹配玩家时遇到了一个问题 一个想玩的玩家会被放在一张配对桌上 id、用户、金额 现在,我想查询表匹配,寻找可能的最佳用户对(因此,希望以相同数量进行游戏的用户) 我还希望等待时间较长(id较小)的用户首先配对 到目前为止,我有一个疑问: SELECT * FROM matchmaking a, wpr_matchmaking b WHERE a.user != b.user AND a.amount = b.amount ORDER BY a.id ASC

我目前正在开发一款1v1网络游戏,在尝试匹配玩家时遇到了一个问题

一个想玩的玩家会被放在一张配对桌上

id、用户、金额

现在,我想查询表匹配,寻找可能的最佳用户对(因此,希望以相同数量进行游戏的用户) 我还希望等待时间较长(id较小)的用户首先配对

到目前为止,我有一个疑问:

SELECT *
FROM matchmaking a, wpr_matchmaking b
WHERE a.user != b.user
AND a.amount = b.amount
ORDER BY a.id ASC , b.id ASC
LIMIT 0 , 30
这将返回所有可能的配对,因此在包含此内容的表中:

id, user, amount
1, 1, 10
2, 2, 10
3, 3, 10
我得到了一对:

1,2
1,3
2,1
2,3
3,1
3,2
而在这种情况下,我只希望返回1,2

如何使它最多只向每个用户显示一次


编辑:将条件“和a.id”添加到查询中会将配对减少2倍,但仍然太多。

是否只希望最高的配对与之匹配,然后重新运行查询?您可以使用
选择前1名

遗憾的是,我需要所有匹配项,而不仅仅是一项。如果表中有4个用户:1,2,3,4,所有用户的播放量相同,我希望返回“1,2”和“3,4”