在单SQL查询中查找多个父母的所有子项
发布时间:2020-05-27 18:15:09 所属栏目:MsSql 来源:互联网
导读:假设我有一个父子关系的表. parent child1 41 52 63 74 86 97 108 11 现在我有一个查询返回一个人的列表(例如1和2),我想找到他们所有的孩子,孙子等(在这种情况下:4,5,6,8,9,11). 我知道我可以使用通用表表达式递归搜索,但是我想知道是
|
假设我有一个父子关系的表. 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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- MySQL5.7.03 更换高版本到MySQL 5.7.17安装过程及发现问题解
- sql-server – SQL Server中的区分大小写的变量
- sql-server – 如何在sql server 2008上安装全文?
- sql – 高写入(10000次插入/小时),低读取(10次读取/秒)的最
- Sqlite数据库里插入数据的条数上限是500
- sql-server – 用于在sql server中查找数据库瓶颈的工具
- SQL Server得到当天数据的语句
- SQL Server自定义异常raiserror使用示例
- sql – 不允许保存更改 您所做的更改需要删除以下表格并重新
- sql – 如果使用slick将列值设置为“None”,则插入默认值
