我有兩個表。一個是文章和另一個結構。這些文章可以被視爲一個帶有孩子節點的樹等等。像Windows窗體控件TreeView一樣。在「樹」中選擇其下面全部有五個的行
結構表基本上看起來這樣:
- 的article_id
- article_above_id
文章:
- 的article_id
- article_number
我想選擇最多五篇文章_的編號的和從那裏顯示的文章,其中有這些文章在它下面的樹。
article_number-data來自GUI,其中至少有一個是必需的,如果沒有輸入,它將爲空。
我有兩個表。一個是文章和另一個結構。這些文章可以被視爲一個帶有孩子節點的樹等等。像Windows窗體控件TreeView一樣。在「樹」中選擇其下面全部有五個的行
結構表基本上看起來這樣:
文章:
我想選擇最多五篇文章_的編號的和從那裏顯示的文章,其中有這些文章在它下面的樹。
article_number-data來自GUI,其中至少有一個是必需的,如果沒有輸入,它將爲空。
您可以選擇五篇文章並加入其父文章,在父文章上進行分組,並僅獲取具有五篇針對兒童文章的文章。
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
(注:我用了「上面」字段結構表在樹上面的意思,即子項的ID如果已經打開了的樹倒過來,有葉下掛。根,您將不得不切換使用字段。)
聞起來像遞歸查詢。把它作爲出發點/問題,並重新制定你的問題。在模式描述之後我真的迷失了方向。 – Leonidas 2010-01-25 13:59:15