多个MySQL查询,其中包含不同的表

时间:2012-05-04 14:25:57

标签: php mysql

所以我正在开发游戏,如果可能的话,我想让我的代码更容易一些。我有两个表需要查询,一个表我想从中返回用户ID,另一个表进行一些后台检查。

  

统计表:    userid |金|攻击|防守|奖金| ...

     

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

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

  

SELECT userid AS user FROM stats WHERE($ attack + $ bonus)> (辩护+奖金)ORDER BY金DESC LIMIT 1

     

SELECT COUNT(*)AS count FROM logs WHERE attacker = $ id AND attacked = user AND date> $ time - 86400

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

1 个答案:

答案 0 :(得分: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