我想知道如何使用单个查询从一个表中选择并从另一个表中进行计数(循环)
表格标签
------------------------------
cat_id | cat_name | parent_id
------------------------------
1 | General | 0
------------------------------
2 | News | 0
------------------------------
3 | Sports | 1
------------------------------
4 | Test | 0
------------------------------
表格
--------------------------------------
post_id| title | c_id | active
--------------------------------------
1 | test | 1 | 1
--------------------------------------
1 | test 1 | 2 | 0
--------------------------------------
1 | test 2 | 1 | 1
--------------------------------------
1 | Test 3 | 3 | 1
--------------------------------------
我想要显示类别where parent_id=0
(主要类别),并在其前面添加帖子数(帖子where active = 1
)
例如:一般(2个帖子)
任何人都可以举例说明如何使用一个查询
答案 0 :(得分:1)
SELECT
`cat_name`,
(SELECT COUNT(*) FROM `posts` p WHERE p.active =1 AND p.c_id = c.cat_id) as post_count
FROM `category` c
WHERE c.parent_id = 0
ORDER BY `cat_name` ASC
答案 1 :(得分:1)
尝试此查询,您可以在查询中使用带有select语句的子查询。
select cat_name,
(select count(*)
from post
where active=1
and c_id=cat_id
) as countpost
from ctagories
where parent_id=0;