我试图从一个名为 games 的表中选择前 3 个条目,该表具有玩家的外键和 2 个用于主机和对手的个人分数的整数。
查询:
SELECT
games.id, games.host_score, games.opponent_score, player.name
FROM games, player
WHERE player.id = games.host_player_id
|| player.id = games.opponent_player_id
ORDER BY games.host_score, games.opponent_score DESC LIMIT 3
查询完成,但又出现乱序:
id host_score opponent_score name
17 0 0 Temp2
17 0 0 Temp0
16 770 930 Temp0
当我运行没有 OR 的查询时,它可以工作。我怎样才能使这种方法起作用?
还有一种方法可以将 LIMIT 设置为 50 但不计算重复项?例如,如果我想要 2 的限制,但 3 人的得分为 50,而 2 人的得分为 20,它将返回:
id host_score opponent_score name
17 50 0 Temp2
17 50 0 Temp0
17 50 0 Temp1
17 20 0 Temp3
17 20 0 Temp4
或者在php中将它作为单独的问题运行会更好吗?