我有一个相当复杂的数据库问题要问,所以我将尽可能详细地解释。
我有一个名为TypeAttributes的表。
typeID、attributeID、valueINT
我希望从这个表中提取一个具有6个属性ID的特定类型。
因此,我希望在下面的示例typeID = 11446中搜索typeID的查询得到类似下面这样的结果
typeID, attributeID, valueINT
11446 182 3000
11446 183 3001
11446 184 3002
11446 277 5
11446 278 2
11446 279 2 根据这些信息,我希望再次运行上面的查询,但是使用attributeID的182、183和184的valueINT作为要查询的typeID。所以,我应该会得到一个像这样的表格:
typeID, attributeID, valueINT
11446 182 3000
11446 183 3001
11446 184 3002
11446 277 5
11446 278 2
11446 279 2
3000 182 1000
3000 183 1001
3000 277 5
3000 278 5
3001 182 51951
3001 277 3
3002 182 1000
3002 277 2最后,我希望拥有所有必备的typeID,182个属性值(实际上是我感兴趣的一种属性),以及它的次要属性(277)。
根据这些数据,我应该能够简单地从一种项目类型构建信息的层次结构。即。我选择item type 11446,它会一直遍历整个树,直到没有必需品为止。
可以完全用SQL来输出这样的表吗?
我希望这对某些人来说是有意义的。
亲切的问候
PS。
作为附注,属性ID绑定到另一个表,该表告诉我我正在查看哪种属性,值是该属性的值,在本例中,valueINT实际上是我希望通过完全相同的过程查找的另一个typeID。
182、183和184是某些类型,277、278和279是这些类型的乘法器。
发布于 2011-10-06 23:35:43
您可以考虑使用一种名为modified preorder traversal的方法来存储树形结构数据-该方法使您可以轻松地在单个查询中找到给定节点的任何深度的子节点所在的所有节点。
似乎你有几棵树,每棵树都由一个特定的属性定义。这些属性中的每一个都将被一对值替换,以存储左和右节点标识符。
https://stackoverflow.com/questions/7676685
复制相似问题