【发布时间】:2011-09-10 14:56:52
【问题描述】:
表-用户
列 - (userId ,name, managerId)
行 -
(1,nilesh,0)
(2,nikhil,1)
(3,nitin ,2)
(4,Ruchi,2)
如果我给出用户 ID,它应该列出所有向他报告的人。 如果我给 userId = 2 它应该返回 3,4。
这个查询是否正确
SELECT ad3.userId
FROM user au , user au2 , user au3
WHERE
ad.managerId = ad2.managerId AND
ad3.managerId = ad2.userId AND
ad.userId=2
是否有任何有效的方法来管理 DB 中的树结构? 左右叶方式怎么样?
【问题讨论】:
-
你使用什么样的数据库?
-
如果您正在寻找在关系数据库中实现层次结构的替代方法,您可以查看此演示文稿。 slideshare.net/billkarwin/models-for-hierarchical-data
-
了解数据库引擎非常重要。您想要的是“WITH”子句,但它并未得到普遍支持。
-
“WITH”子句称为“递归公用表表达式”,PostgreSQL、Firebird、Oracle、DB2、SQL Server、Sybase和H2都支持