0

所以我正在开发一款游戏,如果可能的话,我想让我的代码更简单一些。我有两张表需要查询,一张表我想从中返回用户 ID,另一张表进行一些背景检查。

统计表:用户 ID | 黄金 | 攻击 | 防御| 奖金 | ...

日志表:logid | 攻击者 | 被攻击 | 时间 | ...

这是我可能会遇到的两个问题:

SELECT userid AS user FROM stats WHERE ($attack + $bonus) > (defense + bonus) ORDER BY gold DESC LIMIT 1

从日志中选择计数(*)作为计数 WHERE 攻击者 = $id AND 被攻击 = 用户 AND 日期 > $time - 86400

$变量当然是php变量,第二个查询中的'user'指的是第一个查询中的“AS用户”。我的目标是返回我可以攻击的最高金币的人的用户 ID,我在最后一天攻击了不到 5 次。我不太确定如何加入这两者,但如果可能的话,我想加入!

4

1 回答 1

2

试试这个(未测试):

SELECT s.userid AS user 
FROM stats s
LEFT JOIN logs l ON (l.attacked = s.userid) // attacked is the one I want to get from stats with the highest gold
WHERE ($attack + $bonus) > (s.defense + s.bonus) 
    AND l.attacker = $id
    AND l.date > $time - 86400
ORDER BY s.gold DESC LIMIT 1
于 2012-05-04T14:34:31.180 回答