sql - 使用 while 条件的嵌套查询 - sql

标签 sql oracle nested

我需要对单个表执行嵌套查询。每行都可能是另一行的父项或子项。

是否可以使用单个 select 语句来完成此操作?我开始使用这个语句,但它只下降了一个级别。

select * from myTable where parent_id in 
   (select id from myTable where name = 'manager' )

然而,这个选择只会下降一级。如果一行有多个 child ,他们将被忽略。 (在表格中,每一行都有一个 Id 字段,如果一行有父项,那么父项的 Id 值将在子项的 parent_Id 字段中.)

如果我可以在 SQL 中包含一个 while 循环,它将始终检查返回的 Id 是否是父行,以及是否检查并查看是否有任何其他行是它的子行检查其他行 parent_Id。但是我担心这会花费很多周期才能最终找到所有父子关系。有什么建议么?谢谢

使用 Oracle 数据库

最佳答案

我认为您正在寻找这样的分层查询:

select * from mytable
connect by prior id = parent_id
start with name = 'Manager';

(“嵌套表”完全是另一回事。)

关于sql - 使用 while 条件的嵌套查询 - sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099826/

相关文章:

mysql - 欢笑中的数据库到数据库的复制

excel - Excel VBA中的嵌套循环错误

r - 将函数从参数传递到嵌套函数

c++ - 关于预处理过程中MACROS的扩展

.net - 在 SQL 中正确使用 IN

mysql - 使用单个 mysql 查询为用户获取组(仅允许)

sql - Oracle PL/SQL : Dump query result into file

oracle - 我是 PL/SQL 的新手。有人可以帮助我了解这个 PL/SQL 过程吗?

sql - 为什么我的左连接不返回空值?

Mysql Bulk update performance improvements for (when.. case)