我根据这篇文章的指南使用嵌套模型。
嵌套类别表如下。
产品表如下。
我想获取所选级别的父节点和子节点。例如:如果选择了电视,则应显示查询。此外,还应显示每个类别中每个产品的数量。
Electronics
Television
Tube (2)
LCD (1)
Plasma (2)
我写了以下查询
SELECT parent.name, count(product.product_id)
FROM nested_category AS node,nested_category AS parent,nested_category AS midpoint
LEFT JOIN product ON product.product_id=midpoint.category_id
WHERE (node.lft BETWEEN parent.lft AND parent.rgt) AND (node.lft BETWEEN midpoint.lft AND midpoint.rgt) AND midpoint.name='TELEVISIONS'
GROUP BY parent.name
ORDER BY node.lft
我得到的结果在这里
这可以正确获取所有子节点和父节点,但计数错误。在此处检查 SQL Fiddle