sql - 从一个表查询子/父关系

标签 sql oracle

我有一张表,我在同一张表上有一个父子关系,如何获得子名 = xyz 的子父关系?

SELECT C.RQ_REQ_ID, C.RQ_FATHER_ID, C.RQ_REQ_NAME
FROM REQ C, REQ P
WHERE C.RQ_FATHER_ID =+ P.RQ_REQ_ID AND P.RQ_REQ_NAME = 'XYZ'

我想要的结果

RQ_REQ_ID        RQ_FATHER_ID      RQ_REQ_NAME
------------------------------------------------------
0                 -1               Requirement
1                 0                EP Release
363               1                UAT
364               363              2013
438               364              XYZ

非常感谢。

最佳答案

您的查询看起来像是在使用 Oracle,因此此递归查询应该有效:

SELECT rq_req_id, rq_father_id, rq_req_name
  FROM req
CONNECT BY rq_req_id = PRIOR rq_father_id
START WITH rq_req_name = 'XYZ';

关于sql - 从一个表查询子/父关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18700129/

相关文章:

java - 使用 JDBC 在 Oracle 数据库上创建 Java

java - 违反完整性约束 - 在级联上找不到父 key

java - 从 SQL/HQL Java 解析表名和列名

php - 如何在数据库中正确插入浮点变量

sql - 如何在 postgres 中使用动态标识符连接表?

SQL FOR XML 路径,返回多个子元素

performance - 基于提示的 Oracle SQL 调优 - 最近版本有什么好处吗?

mysql - 将 3 个独立的列合并为一列,以便在 IN 子句中使用

c# - Entity Framework - 无法更新 EntitySet 二进制数据

sql - 如何在 Oracle SQL 中解析 https 地址中的数字?