【问题标题】:Joining 3 Tables (count like occurrences on post by user)加入 3 个表(在用户的帖子中计算出现次数)
【发布时间】:2015-02-04 11:03:44
【问题描述】:

我正在尝试加入以下 3 个表:

表 1:帖子 结构:pid(帖子ID)、message(内容)、poster_uid(用户ID)

表 2:用户 结构:uid(用户ID),用户名

表 3:喜欢 结构:lid(like ID)、pid(post ID)、uid(user ID)

我想要一个帖子有多少喜欢的计数器,因此,我想计算用户(用户 ID)发布的帖子(通过帖子 ID 找到)上的点赞次数。

有什么想法吗?

谢谢,

【问题讨论】:

  • 请提供一些示例数据和预期结果,以便于理解您的确切要求。

标签: mysql sql


【解决方案1】:

如果您只想按帖子 ID 和用户 ID 计算点赞数,则不需要对这些表使用 JOIN。

SELECT COUNT(1) FROM likes WHERE pid = :PID AND uid = :UID;

您使用连接检索相同的结果,但这个更有效。

【讨论】:

    【解决方案2】:

    虽然您的第二个要求不清楚,因此对于没有喜欢的帖子,您可以尝试以下操作:-

    SELECT pid, COUNT(lid) AS COUNTER
    FROM likes
    GROUP BY pid;
    

    第二个我认为你想要这个:-

    SELECT pid, COUNT(lid) AS COUNTER, uid
    FROM likes
    GROUP BY pid,uid;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多