在MySQL中使用嵌套集的分层产品计数

时间:2012-10-08 01:15:31

标签: mysql nested-sets

如果我有类别的嵌套集,请执行以下操作:

Widgets
  Blue
  Red
  Green

我使用关系表来引用这些类别的产品,例如

产品:

id    name
1     Glowing Widget
2     Flying Widget
3     Exploding Widet

关系表:

id    productId    categoryId
1     1            2
2     2            3
3     3            4

有什么方法可以创建一个查询,告诉我们有多少产品被引用到某个类别及其子类中?

1 个答案:

答案 0 :(得分:1)

SELECT COUNT(DISTINCT productId)
FROM categories
JOIN products_to_categories USING (categoryId)
JOIN products USING (productId)
WHERE categories.left >= {left value of category in question}
AND categories.right <= {right value of category in question}