SQL Server 2008 R2 - 选择分层数据
我在 SQL Server 中有一个表,其中包含类别和子类别。它们通过ID
和PID
之间的关系连接。
顶级项目的 PID
为 0,其他行具有其父级的 PID
。
获取这些数据的最有效方法是什么?
简单的算法是循环遍历父级列表,然后在不同的查询中获取每个父级的子级(针对数据库或数据集)。
框架中是否内置了任何方法来支持更好的方法?可以让我轻松绑定到中继器(或其他数据控件)的东西。
I have a table in SQL Server which holds categories and sub-categories. They are connected by a relation between ID
and PID
.
Top level items have a PID
of 0 and other rows have the PID
of their parents.
What would be the most efficient way to get this data?
The naive algorithm for this would be to loop through the list of parents and then get the children for each parent in a different query (either against the DB or the dataset).
Is there any methods built in to the framework to support a better way of doing this? Something that will allow me to easily bind to a repeater (or other data control).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设至少是 SQL Server 2005,我将针对 递归公用表表达式使用单个查询。
Assuming at least SQL Server 2005 I'd use a single query against a recursive common table expression.
您可以使用
Comman Table Expression
来获取Sql Server中的分层数据。You could use
Comman Table Expression
to get the hierarchical data in Sql Server.