【问题标题】:Mysql Join query with count() for getting user favourites postsMysql 使用 count() 加入查询以获取用户收藏的帖子
【发布时间】:2018-05-13 22:02:19
【问题描述】:

我的数据库中有两个表

1.用户表

2.POST表(id,title)

3.FAVOURITE TABLE (id,post_id,user_id)

我想获取特定用户最喜欢的帖子以及每个帖子的总收藏夹。

SELECT post.title,COUNT(favourite.post_id) as total_favourites FROM post
JOIN favourite ON post.id=favourite.post_id
WHERE favourite.user_id=119 GROUP BY favourite.post_id

我得到了结果,但 total_favourites 存在问题,即使特定帖子有多个收藏夹,它总是将计数视为 1

例如:

最喜欢的表

 id post_id,user_id
   1  1       1
   1  1       2

在上面的帖子中有 id 1 有两个收藏夹,但在我的查询中,我将被视为 1

【问题讨论】:

  • 使用COUNT(*) 而不是COUNT(favourite.post_id)
  • 让我试试那个
  • @AlivetoDie 我还是一样

标签: php mysql


【解决方案1】:

用户只能将帖子标记为收藏一次,因此总数始终为 1。

【讨论】:

  • 但是一个帖子有不止一个喜欢的人认为像fb post和like
【解决方案2】:

尝试按 user_id 分组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-04
    • 2011-08-06
    • 2015-11-08
    • 2019-08-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多