SQL选择指定类别及其子类的所有产品

时间:2012-10-23 11:16:58

标签: mysql sql parent-child

我有这样的数据库:

categories(id, parent_id)
items(id, category_id)

并拥有这些条目:

分类:

Paintings(id=1, parent_id=NULL), 
Landscape(id=2, parent_id=1)

项目:

Painting1(id=1, category_id=2)

我正在尝试从指定的类别中获取所有项目。

例如:绘画中的所有项目都是来自PaintingsLandscape的项目以及作为父级Paintings的所有类别。

我正在尝试执行此操作:

SELECT * FROM items p
JOIN categories cp ON p.category_id = cp.id
JOIN categories cc ON cc.parent_id = cp.id AND p.category_id = cc.id
WHERE cp.id = "1"

但它没有达到预期效果。

1 个答案:

答案 0 :(得分:1)

SELECT * FROM items p
JOIN categories cp ON p.category_id = cp.id
JOIN categories cc ON cp.parent_id = cc.id
WHERE cc.id = "1"