gpt4 book ai didi

mysql - SQL 计数子类别

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

我想知道如何使用计数函数来计算我的每个类别有多少个子类别。

我的原始查询如下(其中名称 = 类别名称):

select 
catid,
name,
pcatid
from category

我只是想添加一个名为“SubCategoryCount”的列(它不包含在我的数据库中的任何地方)。如果有意义的话,此列将计算每个 catid 在 pcatid 列中被引用的次数。

一个简单的示例数据库是

catid   name      pcatid
1 Base NULL
2 Computers 1
3 Phones 1
4 Laptops 2
5 Dell 4

我想生产

catid   name      pcatid    SubCategoryCount
1 Base NULL 2
2 Computers 1 1
3 Phones 1 0
4 Laptops 2 1
5 Dell 4 0

但是我该如何实现呢?

谢谢你的帮助

约翰

最佳答案

您需要使用 LEFT JOIN 连接表本身,这样它会显示表中的所有记录,即使它没有子类别。

SELECT  a.catid,
a.NAME,
a.pcatid,
COUNT(b.pcatid) SubCategoryCount
FROM category a
LEFT JOIN category b
ON a.catid = b.pcatid
GROUP BY a.catid, a.NAME, a.pcatid

PS:这个查询只是结果的投影,没有改变表的原始架构。它实际上不会在表 category 上添加新列。

关于mysql - SQL 计数子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19006382/

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