Oracle11g Oracle分层查询:具有两个节点属性NodeId和NodeType

Oracle11g Oracle分层查询:具有两个节点属性NodeId和NodeType,oracle11g,hierarchical-data,recursive-query,Oracle11g,Hierarchical Data,Recursive Query,在下面的用例中,我希望使用分层查询来获得所需的结果 在我的用例中,我有两种类型的节点,比如“A”和“B”。因此,节点的唯一标识符是其ID和类型 现在的问题是,当两个具有相同Id和不同类型的节点时,当我在Id上调用connect by子句时,我也会得到其他类型节点的子节点(如果该节点的Id相同) 此特定用例的表中数据: 1, 'A', NULL, null 2, 'A', 1, 'A' 3, 'A', 1, 'A' 2, 'B', NULL, null 3, '

在下面的用例中,我希望使用分层查询来获得所需的结果

在我的用例中,我有两种类型的节点,比如“A”和“B”。因此,节点的唯一标识符是其ID和类型

现在的问题是,当两个具有相同Id和不同类型的节点时,当我在Id上调用connect by子句时,我也会得到其他类型节点的子节点(如果该节点的Id相同)

此特定用例的表中数据:

   1, 'A', NULL, null
   2, 'A', 1, 'A'
   3, 'A', 1, 'A'   
   2, 'B', NULL, null
   3, 'B', 2, 'B'
现在我触发以下查询(该查询没有给出正确的结果)

我也尝试了下面的查询,但结果还是错误的

SELECT * FROM TREETEST
START WITH PARENTID = 1 AND PARENTTYPE = 'A'
CONNECT BY PRIOR nodeid = PARENTID AND NODETYPE = PARENTTYPE;
请提供正确的查询,并解释第二个查询不起作用的原因

预期产出:

2   A   1   A
3   A   1   A
说明:
previor
是应用于列名的运算符,而不是应用于整个条件

SELECT * FROM TREETEST
START WITH PARENTID = 1 AND PARENTTYPE = 'A'
CONNECT BY PRIOR nodeid = PARENTID AND NODETYPE = PARENTTYPE;
2   A   1   A
3   A   1   A
SELECT *
FROM treeTest
START WITH parentId = 1
    AND parentType = 'A'
CONNECT BY PRIOR nodeId = parentId
    AND PRIOR nodeType = parentType
;