SQL查询:用户关注的过去24小时内发布的评论数

时间:2011-01-04 00:50:24

标签: php sql drupal

我有一个网站,用户可以关注他们喜欢的用户,并可以阅读他们的最新更新。

我想向用户展示他们关注的人在过去24小时内发布的评论数量。我无法搞清楚查询。

我有两张桌子。

评论

  • cid(评论ID)
  • 时间戳
  • uid(发表评论的人的身份)
  • 评论(评论内容)

user_relationships

  • requester_id(跟随此人的用户的ID)
  • requestee_id(被跟踪者的身份证)

用简单的英语,我认为查询是这样的:

从评论表中计算cid.comment,其中uid.comment等于与requester的requestter_id.user_relationships值相关联的requestee_id.user_relationships。

我需要从usr_relationship表中获取给定UID的人的所有UID。然后计算这些人在过去24小时内发布的评论数量并吐出该数字。

这个查询会是什么样的?

4 个答案:

答案 0 :(得分:2)

SELECT COUNT(1) 
FROM user_relationships ur 
JOIN comment c ON (ur.requestee_id = c.uid)
WHERE c.timestamp >= (CURRENT_TIMESTAMP - <interval of 1day>) 
  AND ur.requester_id = <visitor>

也希望这会有所帮助。

你必须弄清楚如何创建一个从时间戳中减去的间隔。

答案 1 :(得分:0)

    SELECT COUNT(*)
      FROM Comment
     WHERE uid in (SELECT user_relationships.requesterid
                     FROM user_relationships
                    WHERE user_relationships.requesteeid = @ThisID)

希望这有帮助, 欢呼声,

答案 2 :(得分:0)

使用联接

SELECT
    COUNT(c.cid)
FROM
    user_relationships r
    INNER JOIN comments c ON c.uid=r.requester_id AND c.timestamp > NOW() - INTERVAL 24 HOUR
WHERE
    r.requestee_id={user_id}

答案 3 :(得分:0)

加入更快

SELECT COUNT(comments.uid) FROM comments JOIN user_relationships ON user_relationships.requestee_id = comments.uid WHERE user_relationships.requester_id = $some_id