【问题标题】:Is there any easier/more efficient way to perform this query? [duplicate]有没有更简单/更有效的方法来执行这个查询? [复制]
【发布时间】:2013-07-07 17:10:16
【问题描述】:

我有一个表格,它以一种“父子”方式显示记录之间的关系。 [ID] 字段标识一条记录,[PARENT] 字段通过 [ID] 标识该记录的父项。这为最顶层的父级创建了一个树结构。以下表为例:

[ID]     [PARENT]     [QUANTITY]
123      123          1
456      123          2
789      123          1
321      456          1
654      321          2
987      321          4

请注意 [ID] = '123' 的记录如何成为此“树”中最顶层的记录。我需要查询此表以选择最顶层记录下的所有树节点(完整记录),例如树中 [ID] = '123' 下的所有记录(上述示例表中的所有记录)。目前我正在使用存储过程循环获取具有 [ID] = '123' 的记录的子项,然后记录子项等。我知道必须有一个更简单的查询(不是存储过程)可以动态适应在这种情况下,我只是不确定如果不循环以确保接收到所有孩子,这将如何工作。任何建议表示赞赏。

【问题讨论】:

  • 这是一个分层查询,在 SQL Server 中使用 XML_Path 语法示例:stackoverflow.com/questions/4256900/…
  • 搜索recursive parent child sql query,你应该会得到很多点击。
  • 谢谢大家!我想知道要搜索什么会让它变得非常容易。非常感谢。

标签: sql sql-server hierarchical-data


【解决方案1】:

使用“WITH”公用表表达式 - 强烈推荐用于分层查询。

http://msdn.microsoft.com/en-us/library/ms190766(v=sql.105).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多