我有两张桌子:
tbl_cat:
id parent_id cat_name
1 0 a
2 1 b
3 1 c
4 0 d
5 4 f
tbl_article:
id cat_id article
1 1 abc
2 1 xyz
3 2 hgu
4 4 hju
5 3 kkk
我想和所有孩子一起计算父母的文章数量。我想要像
这样的记录 id parent_id cat_name article_count
1 0 a 3
2 1 b NULL
3 1 c NULL
4 0 d 1
5 4 f NULL
答案 0 :(得分:0)
您可以使用COUNT()
来计算行数,并可以使用JOIN
根据cat_id
将文章与其类别进行匹配。您将获得0而不是NULL
因为COUNT()
计算行的方式,如果没有行,它将返回0,而不是NULL
。
SELECT c.id, c.parent_id, c.cat_name, COUNT(*) AS article_count
FROM tbl_cat AS c JOIN tbl_article AS a ON c.id=a.cat_id
GROUP BY c.id;
答案 1 :(得分:0)
请尝试此代码
SELECT c.id,c.parent_id,c.cat_name,a.article_count
FROM tbl_cat AS c
,(
SELECT cat_id,COUNT(article) AS article_count
FROM tbl_article
GROUP BY cat_id
) AS a
WHERE c.id = a.cat_id