在单SQL查询中查找多个父母的所有子项
发布时间:2020-12-12 08:54:40 所属栏目:MsSql教程 来源:网络整理
导读:假设我有一个父子关系的表. parent child1 41 52 63 74 86 97 108 11 现在我有一个查询返回一个人的列表(例如1和2),我想找到他们所有的孩子,孙子等(在这种情况下:4,5,6,8,9,11). 我知道我可以使用通用表表达式递归搜索,但是我想知道是否可以创建一个SQL语句
假设我有一个父子关系的表.
parent child 1 4 1 5 2 6 3 7 4 8 6 9 7 10 8 11 现在我有一个查询返回一个人的列表(例如1和2),我想找到他们所有的孩子,孙子等(在这种情况下:4,5,6,8,9,11). 我知道我可以使用通用表表达式递归搜索,但是我想知道是否可以创建一个SQL语句来一次查找所有后代,而不必迭代输入集. 编辑:抱歉不够清楚.我正在寻找像: SELECT {Hierarchical relation} from table where parent in (1,2) 这应该导致单个输出列,行为4,11. 我不再对产出的关系感兴趣,只是为多个家庭的家庭成员完整的一套. 解决方法这里是---- PlainTable ---- parent idElement (child) Null 1 1 4 1 5 2 6 3 7 4 8 6 9 7 10 8 11 WITH tableR (parent,idElement) AS ( -- Anchor member definition SELECT e.parent,e.idElement FROM PlainTable AS e WHERE parent in (1,2) UNION ALL -- Recursive member definition SELECT e.parent,e.idElement FROM PlainTable AS e INNER JOIN tableR AS d ON e.parent = d.idElement ) -- Statement that executes the CTE SELECT idElement FROM tableR --inner join to plain table by id if needed (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SqlServer 2005 T-SQL Query 学习笔记(4)
- 每日雕蟲一技[2013-12-11] Sqlserver2005/2008 导入平面文件
- 帆软报表FineReport SQLServer数据库连接失败常见解决方案
- sql – 如何找到哪个属性值只包含一种类型的值?
- SqlServer数据库添加oracle链接服务器小结
- 数据库 – 版本跟踪,使用django自动执行数据库模式更改
- MSSQLSERVER数据库- 变量和批处理
- 关于SQLServer2005的学习笔记——CTE递归和模拟测试数据
- sql-server – 如何在nvarchar的sql server中添加自动增量主
- SQL Server 不存在或访问被拒绝(转)