我有两张桌子。一个是文章和另一个结构。文章可以看作是带有子节点的树等等。就像Windows窗体控件TreeView一样。
结构表基本上看起来是这样的:
文章:
我想从最多五篇article_ 数字中选择,并从中显示在树下有这些文章的文章。
article_number-data来自GUI,其中至少需要一个,如果没有输入则为null。
答案 0 :(得分: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。如果你把树翻过来,叶子挂在根下,你将不得不切换字段的使用。)