Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取一个id的所有家长_Sql_Oracle - Fatal编程技术网

Sql 获取一个id的所有家长

Sql 获取一个id的所有家长,sql,oracle,Sql,Oracle,我提出了一个请求,应该返回所有的ids和那些家长的ids,直到树的最高处,如下所示: SELECT co.id from t_factory co start with co.id in (21,36) CONNECT BY PRIOR co.id = co.id_parent 因此,这里,in()中的值是以编程方式应用的(这没有问题) 父项位于列id\u parent中,例如,我有一行: id id_parent ----------- 36 20 20 31 31

我提出了一个请求,应该返回所有的
id
s和那些家长的
id
s,直到树的最高处,如下所示:

SELECT co.id 
 from t_factory co 
start with co.id in (21,36) 
CONNECT BY PRIOR co.id = co.id_parent
因此,这里,
in()
中的值是以编程方式应用的(这没有问题)

父项位于列id\u parent中,例如,我有一行:

id   id_parent
-----------
36   20
20   31
31   52
但是,我读到
开始,而
通过preor连接
必须允许我在(21,36)中获取id的所有父项

但它只返回21和36,同时还应该返回这样的父值:36、20、31、52。我说得对吗


我该怎么做?

尝试另一个方向:
先前的co\u parent.id=co.id
而不是
先前的co.id=co.id\u parent

SELECT co.id 
from t_factory co 
start with co.id in (21,36) 
CONNECT BY PRIOR co.id_parent = co.id

尝试另一个方向:
PRIOR co\u parent.id=co.id
而不是
PRIOR co.id=co.id\u parent

SELECT co.id 
from t_factory co 
start with co.id in (21,36) 
CONNECT BY PRIOR co.id_parent = co.id

好吧,这很有效。非常感谢。我能解释一下吗?这是规定吗
PRIOR parent=child
?我已经把这个问题和@schurik的答案弄得一团糟:@Zaphod:这叫感谢链接。然后,
previor
关键字必须在父端。@Zaphod从co.id=36开始,用previor co.id\u父项,oracle必须搜索下一行,其中id=当前行的id\u父项。如果您说previor id=id\u parant,那么oracle将搜索id\u parent=current id的下一行。非常感谢。我能解释一下吗?这是规定吗
PRIOR parent=child
?我已经把这个问题和@schurik的答案弄得一团糟:@Zaphod:这叫感谢链接。然后,
previor
关键字必须在父端。@Zaphod从co.id=36开始,用previor co.id\u父项,oracle必须搜索下一行,其中id=当前行的id\u父项。如果您说previor id=id\u parant,那么oracle将搜索id\u parent=current id的下一行。