0

我有两张桌子。一种是文章,另一种是结构。并且文章可以被视为具有子节点等的树。就像 Windows 窗体控件 TreeView。

结构表基本上是这样的:

  • article_id
  • article_above_id

文章:

  • article_id
  • 文章编号

我想从最多五个 article_ number中选择,并从中显示在树中具有这些文章的文章。

article_number-data 来自一个 GUI,其中至少需要一个,如果没有输入,则为空。

4

1 回答 1

0

您可以选择五篇文章并加入其父文章,对父文章进行分组并仅获取与子文章有五个匹配的文章。

select p.article_id
from Article a
inner join Structure s on s.article_above_id = article_id
inner join Article p on p.article_id = s.article_id
where a.article_number in (3,7,45,186,203)
group by p.article_id
having count(*) = 5

(注意:我用结构表中的“above”字段来表示树中的上面,即子项的id。如果你把树倒过来,叶子挂在根下,你将不得不切换字段的使用。)

于 2010-01-25T14:09:10.697 回答