【问题标题】:Show table results based on count in sub query根据子查询中的计数显示表结果
【发布时间】:2014-09-07 16:00:52
【问题描述】:

这真的让我很头疼,我想这是一个简单的查询。

博客表:

blog_id
blog_name
blog_copy

cmets 表:

comment_id
comment_copy
comment_by
blog_id

我想显示超过 3 个 cmets 的博客项目,并按回复量排序。

我尝试了很多查询,包括这个,但它不起作用:

SELECT 
    *, blog_id as BID , 
    (SELECT blog_id 
     FROM comments 
     WHERE blog = BID HAVING COUNT(*) > 3) AS t2
FROM blog
WHERE mostcomments > '3'
ORDER by mostcomments ASC

它说mostcomments 不存在。我已经以其他方式完成了它并且它执行但将 cmets 计数在总体上而不是它正在查找的每个 blog_id

【问题讨论】:

    标签: mysql join count


    【解决方案1】:

    你需要使用GROUP BY:

    select b.blog_id, count(*)
    from blog b
      join comments c on b.blog_id = c.blog_id
    group by b.blog_id
    having count(*) > 2 
    order by count(*) desc
    

    【讨论】:

    • 啊,太完美了。谢谢!
    猜你喜欢
    • 2020-08-28
    • 2012-09-23
    • 2022-07-26
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多