我有2个表格:categories
和products
。用条件计数子类别
类别具有父子关系结构,并且通过加入同一个表来获取数据。
当读取数据时,我都数不过来:
- 多少产品每个类别包含有
stock >= 1
- 多少子类别一个类别包含至少含有1件商品,含
stock >= 1
SELECT c. * , count(DISTINCT s.cat_id) AS number_of_subcategories, count(DISTINCT p.id) AS number_of_products FROM categories c
LEFT JOIN categories s
ON s.parent_id = c.cat_id
LEFT JOIN products p
ON p.cat_id = c.cat_id AND p.stock >= 1
GROUP BY c.cat_name
ORDER BY number_of_products ASC
第一眼一切顺利,但不幸的是我得到所有子类别的总数。
我是否还想再加入一次,或者到目前为止我的问题是什么?
下面是代码:SQLFiddle
哇,这实际上是一个非常棒的解决方案:)谢谢! – vikingmaster 2013-04-04 22:15:54