使用MSSQL查询获取父级的所有子级
发布时间:2021-03-06 23:44:57 所属栏目:MsSql教程 来源:网络整理
导读:我的数据库中有以下数据: Parent Child101 102101 103101 104101 105101 106 我的参数是106.并且使用参数我想要检索其父项下的所有其他子项,即101.我尝试使用递归方法但是在给定以下数据的情况下它不起作用.还有另一种方法来制定查询吗? 解决方法 假设您
我的数据库中有以下数据: Parent Child 101 102 101 103 101 104 101 105 101 106 我的参数是106.并且使用参数我想要检索其父项下的所有其他子项,即101.我尝试使用递归方法但是在给定以下数据的情况下它不起作用.还有另一种方法来制定查询吗? 解决方法假设您想获得值为@ p0的兄弟姐妹,您可以使用简单的自联接:SELECT p.Child FROM Table1 c INNER JOIN Table1 p ON c.Parent = p.Parent WHERE c.Child = @p0 AND p.Child <> @p0 这里不等的条款确保你让兄弟姐妹不包括你搜索的值.必要时将其取下. SQL Fiddle example 既然你提到了递归,也许你希望整个树从值@p0的父级开始.在这种情况下,您可以使用递归CTE: WITH parent AS ( SELECT Parent FROM Table1 WHERE Child = @p0 ),tree AS ( SELECT x.Parent,x.Child FROM Table1 x INNER JOIN parent ON x.Parent = parent.Parent UNION ALL SELECT y.Parent,y.Child FROM Table1 y INNER JOIN tree t ON y.Parent = t.Child ) SELECT Parent,Child FROM tree SQL小提琴示例using your data和 (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 在哪里可以找到用于学习的数据库调优练习?
- 百度启动搜索引擎技术高校巡讲
- sql-server – 在同一个VM上运行2个SQL Server 2014实例是否
- sql-server – 未记录的CONVERT样式 – datetime 23
- SQL Server误区:有关FileStream的存储及垃圾回收
- 承启发布首款FX5200显卡,蓝色魅力即将到来!
- sql-server – 关于作为Head Blocker的SQL连接,我该怎么办?
- sql-server – SQL Server 2008 R2创建新实例
- sql – 运行存储过程并从VBA返回值
- Windows2012远程桌面的“限制每个用户只能进行一个会话”的
站长推荐
热点阅读