Php 一次查询中的嵌套集、产品计数和类别深度
按照本文的说明,我想得到一个完整的树,每个类别的深度都很好 我还想得到每个类别的产品数量。我试图添加另一个COUNTproducts\u categories.product\u id,但它把深度值搞乱了。如何修改查询以获得每个类别的产品数量和深度Php 一次查询中的嵌套集、产品计数和类别深度,php,mysql,sql,Php,Mysql,Sql,按照本文的说明,我想得到一个完整的树,每个类别的深度都很好 我还想得到每个类别的产品数量。我试图添加另一个COUNTproducts\u categories.product\u id,但它把深度值搞乱了。如何修改查询以获得每个类别的产品数量和深度 products_categories ---------------------- category_id product_id SELECT node.name, (COUNT(parent.name) - 1) AS depth FROM
products_categories
----------------------
category_id
product_id
SELECT node.name, (COUNT(parent.name) - 1) AS depth
FROM nested_category AS node,
nested_category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
GROUP BY node.name
ORDER BY node.lft
换句话说,我想结合这两个查询
SELECT node.name, (COUNT(parent.name) - 1) AS depth
FROM nested_category AS node,
nested_category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
GROUP BY node.name
ORDER BY node.lft
SELECT parent.name, COUNT(product.name)
FROM nested_category AS node ,
nested_category AS parent,
product
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.category_id = product.category_id
GROUP BY parent.name
ORDER BY node.lft;
我终于解决了我的问题。我结合了以上的查询,这样我就可以得到这样的深度和产品数量
SELECT parent.id,
parent.lft,
parent.rgt,
(SELECT COUNT(parent2.id) FROM businesscategories AS parent2 WHERE parent.lft > parent2.lft AND parent.rgt < parent2.rgt) AS depth,
COUNT(b_c.business_id) AS bcount
FROM businesscategories AS node,
businesscategories AS parent,
businesses_categories AS b_c,
WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.id = b_c.category_id
GROUP BY parent.id having depth > 0
ORDER BY parent.lft
你的问题需要改进,我仍然不完全理解你需要什么。我编辑了我的问题。请检查.+1以获得通过使用此部件缩短执行时间来解决我的问题的灵感选择COUNTparent2.id。。