将计数值添加到SQL查询?

时间:2018-12-27 18:20:54

标签: mysql sql

我正在使用MySQL作为数据库创建论坛页面,但是我来自MongoDB,有点困惑。当我获取特定类别的所有帖子时,看起来像这样

SELECT p.id, p.posted_at, p.title, p.content, c.name AS category_name, u.name 
AS author_name
FROM posts AS p
INNER JOIN users AS u ON p.author = u.id
INNER JOIN categories AS c ON p.category = c.id
WHERE p.category = 3 <-- Category ID

人们可以关注帖子,因此我有一个名为user_post_relations的表,该表包含两列; user_id和post_id。 我的目标是为查询添加每个帖子的关注者数量,以获取每个类别的所有帖子。仅一个查询如何实现?

1 个答案:

答案 0 :(得分:0)

将以下带有子查询的JOIN添加到您的查询中

JOIN (SELECT post_id, COUNT(*) follower_count
      FROM user_post_relations
      GROUP BY post_id) AS upr ON upr.post_id = p.id

然后将upr.follower_count添加到您的选择列表中