父子树结构的SQL过滤器

时间:2014-05-16 00:51:29

标签: sql filter tree

所以我有一个数据库,其中每个记录都引用同一个表中的父记录(可能为null)。每条记录还有一个“活跃”的记录。标志,描述单个记录当前是否处于活动状态。

我想得到一个具有以下特征的平面记录列表:

  • 活跃
  • 不包含非活动祖先

我没有构建树并进行搜索来过滤掉记录,而是希望在SQL中实现这一点。有没有办法加入或聚合以过滤掉不需要的记录?

1 个答案:

答案 0 :(得分:0)

您可以使用CTE和递归查询(如果您的数据库系统支持它)来实现此目的。

有一个SQL Server示例here和一个Postgres示例here