问题描述
我想将品牌产品的总数添加到总数栏中。
http://sqlfiddle.com/#!18/2d00a/1
这是我的查询;
WITH cte AS
(
SELECT id
FROM category
WHERE id = 1
UNION ALL
SELECT c.id
FROM category c,cte
WHERE c.parentid = cte.id
),cte2 AS
(
SELECT brandid,d.catid
FROM products d,cte
WHERE d.catid = cte.id
UNION ALL
SELECT u.brandid,COUNT(DISTINCT u.id)
FROM products u,cte
WHERE catid = cte.id
GROUP BY brandid
)
SELECT DISTINCT
brandid,logo,brand,id,id as total
FROM
brand,cte2
WHERE
id = cte2.brandid
ORDER BY
brand ASC
解决方法
这里是根据我的理解所得到的查询,以获取每个品牌的总产品数。 DBFIDDLE工作代码
header('HTTP/1.0 301');
结果:
,166.66666666666666
假设您要根据类别1(也包括子类别)过滤产品
SELECT b.id,b.logo,b.brand,count(p.id) total
FROM brand b
LEFT JOIN products p ON p.brandid = b.id
GROUP BY b.id,b.brand