通过两个表中的数据获取用户订单

时间:2017-04-24 08:41:50

标签: mysql

我想通过两组数据获取用户列表:

  1. 帖子数量
  2. 星数(收藏)
  3. 为此,我使用两张桌子:

    收藏夹

    |user_id|post_id|
     10       2
     10       3
     15       1
    

    帖子

    |post_id|author_id|
     1        10
     2        28
     3        15
    

    为此,我使用以下mysql查询:

    SELECT posts.user_id
         , COUNT(posts.id) as posts
         , COUNT(favorites.id) as stars 
      FROM forge.posts 
      JOIN favorites 
        ON posts.user_id = favorites.author_id 
     group 
        by posts.user_id 
     order 
        by posts desc
         , stars desc;
    

    结果:

    |user_id|posts|stars|
     10      2     2
     15      1     1 
    

    结果列表的顺序并不反映现实。

    此查询的问题是返回返回posts = posts*results from favoritesstars = stars*results from posts的数量。 虽然我理解为什么会这样,但我不知道如何让它回归" distinct" postsstars的COUNT个结果。

0 个答案:

没有答案