请参阅数据表及以下查询..如何通过选择顶级类别来检索属于子类别的项目?
Items
Id, Name
1, Item 1
2, Item 2
Categories
Id, Name, Parent ID
1, Furniture , 0
2, Tables, 1
3, Beds, 1
4, Dining Table, 2
5, Bar Table, 2
4, Electronics, 0
5, Home, 4
6, Outdoors, 4
7, Table lamp, 4
ItemCategory
ItemId, CategoryId
1, 2 .. Row1
2, 4 .. Row 2
2, 5 .. Row 3
哪些项目ItemCategory表店是属于哪一类。一个项目可以属于顶级和/或子类别。大约有3个深度类别,即Tob级别,子级别和子级别。
用户选择他们想要查看并提交类别的,我可以用下面的示例查询查询数据库..
SELECT * FROM items i INNER JOIN ItemCategory ic ON
ic.itemId = i.itemId AND ic.itemId IN ('comma separated category ids')
这工作得很好。
我的问题是,是否可以查看所有的下一个顶级类的项目,即使它没有被直接分配到项目。例如,如果用户选择上述家具,然后它会列出所有项目属于它的子类(即使ItemCategory不包含任何记录)?
我愿意作出必要amendements的数据表或疑问,请提出一个解决方案。谢谢。
你想要一个纯粹的MySQL解决方案,还是PHP/MySQL解决方案就足够了? – GordyD 2011-05-12 15:25:19
php和mysql更适合我,我会说。 thx – Kay 2011-05-12 16:06:59