Mysql配对/配对

时间:2016-06-03 15:26:07

标签: join mysqli group-by matchmaking

我目前正在开发1v1在线游戏,在尝试匹配玩家时遇到了问题。

想玩的玩家会被放入配对表

id,user,amount

现在我想查询表匹配以获得最佳用户对(因此,想要玩相同金额的用户) 我还希望等待较长时间(较小身份证)的用户首先配对。

到目前为止,我有这个问题:

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<对查询的b.id '会将配对减少2倍,但仍有太多。

1 个答案:

答案 0 :(得分:-1)

您是否只想要最高的一对匹配,然后重新运行查询?您可以使用SELECT TOP 1