【问题标题】:sql count by value stack by different valuesql按值堆栈按不同值计数
【发布时间】:2015-07-14 08:39:04
【问题描述】:

我的数据库是这样的:

table1(article)
id | name | description | cat_id
0 | val1 |   desc1     |   1
1 | val2 |   desc2     |   2
2 | val3 |   desc3     |   1
3 | val4 |   desc4     |   2
4 | val5 |   desc5     |   1
5 | val6 |   desc6     |   2
6 | val7 |   desc7     |   0


table2(categories)
id | name 
0  | shoe
1  | glove
2  | hat

它应该返回:

articles_connected | categorie_name
        3          |  glove
        0          |  shoe
        3          |  hat

我试过了:

SELECT 
    COUNT(Category.id) as article_amount, Category.name
FROM 
    article_table as Article,
    category_table as Category
WHERE
    Category.id =  Article.cat_id

此代码仅计为一个,不会拆分我的类别。我不确定出了什么问题。

【问题讨论】:

  • 请解释您需要的输出
  • 应该统计每个分类关联的文章吗? count(category.id == article.cat_id)
  • 但是例如,您有很多带有 cat hat 的文章,但在您的输出中却显示为 0
  • 确实是 hat = 3 和 shoe = 0,抱歉打错了

标签: mysql sql join


【解决方案1】:

试试

SELECT 
COUNT(Category.id) as article_amount, Category.name
FROM 
article_table as Article,
category_table as Category
WHERE
     Category.id =  Article.cat_id
group by Category.name

【讨论】:

  • 我忘了group by。!谢谢我的 sql 查询很好,它只需要 GROUP BY Category.id 和 ORDER BY Category.name
猜你喜欢
  • 2014-07-31
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
  • 2023-01-30
  • 2021-05-06
  • 1970-01-01
相关资源
最近更新 更多