我有两张表:CATEGORY
和SUBCATEGORY
CATEGORY
category_id int(11)
category_name varchar(250)
category_status enum('0', '1')
SUBCATEGORY
subcategory_id int(10)
subcategory_name varchar(255)
status enum('0', '1')
例如,有一个名为.NET的CATEGORY
,它在SUBCATEGORY
中有条目,如ASP.NET,VB.NET,C#.NET。在这种情况下,我需要使用MySQL将CATEGORY
的计数设为1,将SUBCATEGORY
的计数设为3。
我该如何做到这一点?
答案 0 :(得分:3)
好吧,你可以使用子查询来完成它。但是,您需要在category_id
表中添加subcategory
列,以便我们知道哪些子类别与哪些类别相关。然后,您可以使用以下查询获得所需内容:
select
category_name,
1 as CategoryCount,
(select count(*) from subcategory where category_id = c.category_id) as SubCategoryCount
from
category c
答案 1 :(得分:1)
由于我们可以假设类别计数是1,并且两个表之间的category_id可能存在关键约束,这也可以起作用:
select c.category_id, count(c.category_id)
from category c
inner join subcategory s on (c.category_id = s.category_id)
group by c.category_id
答案 2 :(得分:0)
SELECT COUNT(*) FROM CATEGORY;
SELECT COUNT(*) FROM SUB_CATEGORY;
我不相信这正是你想要的,但是如果没有外键,那就是你真正得到的。