gpt4 book ai didi

mysql - sql按值计数按不同值堆栈pt.2

转载 作者:行者123 更新时间:2023-11-29 12:06:26 25 4
gpt4 key购买 nike

previous question

我的数据库是这样的:

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


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
GROUP BY
Category.id

但是我的代码不正确。此 SQL 查询不计入归零索引它只计算大于 0 的值。如何更改以下查询以也计算 0 的索引?

SELECT 
COUNT(Category.id) as articles_connected, Category.name
FROM
arcticle as Article,
categories as Category
WHERE
Category.id = arcticle .categorie
GROUP BY
Category.id

最佳答案

如果我理解正确,您没有鞋子连接,但想在结果中显示 Shoes = 0 (所以我忽略示例中 table1 的最后一列)。

如果您与 table2 联接,则找不到匹配项,因此鞋子不在您的结果查询中。因此,在这种情况下,您可以使用左外连接:

SELECT 
COUNT(Article.id) as articles_connected, Category.name
FROM categories as Category
left outer join arcticle as Article on Category.id = arcticle .categorie
GROUP BY
Category.id

这样您就可以获得所有文章的计数,​​无论它们是否在表 1 中

关于mysql - sql按值计数按不同值堆栈pt.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31404495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com