0

我有一个层次结构Article,每个Article都有一个属性IsCommentable。这可以采用 true、false 或 NULL 值。如果为 NULL,则表示它继承了基于其父级的值。文章可以递归嵌套,“深度”没有限制。

现在,我需要进行查询,从数据库中获取所有可评论的文章。有什么方法可以通过 SQL 查询加载这些?

4

1 回答 1

1

假设您使用的是 SQL Server,您可以使用递归 CTE来完成。

WITH cte (id, iscommentable) AS (
  SELECT id, iscommentable FROM Article WHERE iscommentable IS NOT NULL
  UNION ALL
  SELECT a1.id, a2.iscommentable FROM Article a1
  INNER JOIN cte a2 ON a1.parent=a2.id
  WHERE a1.iscommentable IS NULL
)
SELECT * FROM cte

SQL 小提琴示例

于 2012-08-31T17:44:37.453 回答