我想通过两组数据获取用户列表:
为此,我使用两张桌子:
收藏夹
|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 favorites
和stars = stars*results from posts
的数量。
虽然我理解为什么会这样,但我不知道如何让它回归" distinct" posts
和stars
的COUNT个结果。