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 に答える