我有两个表category和adverts,我需要选择所有类别以及adverts表中至少计数大于零的广告数
分类表

cat_id   |  Name
----------------
1        | Toys
2        | fashion
3        | electronics

广告表
cat_id   |  title
 ----------------
1        | a
2        | b
2        | c
1        | d
2        | e

我所期望的
cat_id  | count  | Name
-----------------------
1       |2       | a
2       |3       | b

我试过的问题
Select
c.name, c.cat_id,c.parent_id, @count:= (Select Count(av.cat_id) From adsview av Where av.cat_id = c.cat_id)
from
category c  WHERE @count > 0

我得到了空洞的结果,我做错了什么?

最佳答案

如果要确保cat_id中的category表位于adverts表中,则需要以

select
c.cat_id,
c.Name,
count(a.cat_id) as `count`
from category c
join adverts a on a.cat_id = c.cat_id
group by c.cat_id ;

10-06 08:50
查看更多