
我觉得您有这个倒退…您想要后代,但您正在要求父母为4的事物…没有父母为4的事物。
你不是真的想要这个吗?
SELECt child.*FROM @Ph as parent INNER JOIN @Ph as child on child.ProductHierarchyNode.IsDescendantOf(parent.ProductHierarchyNode) = 1WHERe parent.ProductHierarchyId in (1)
这将返回您期望的所有行,并且对我来说更有意义,因为您要求所有后代均为1(根父级)。2是1的子代/后代,3是2的子代/后代,4是3的子代/后代。
“ WHERe parent.ProductHierarchyId IN(1)”表示“查找所有其中1是父级/祖先的节点”。
在第一个查询中,您要查询4是后代的所有节点,所以这很有意义。
在第二个查询中,您要查询所有1的后代。如果要“ 4的所有祖先”,则将是另一个查询。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)