OrganisationID OrganisationName parentID
1 Org1 Null
2 Org2 1
3 Org3 1
4 Org4 2
5 Org5 2
6 Org5 4
表名是 tbl_Organisation
我有一张类似于此的桌子。我所要做的就是检索子组织并显示它。假设传递的组织ID是3,那么Org3没有任何子项,因此它只显示Org3。假设如果OrgID = 2,则Org2具有子Org4并且Org4具有子Org5。所以对于OrgID = 2,我必须显示Org2,Org4和Or5。那怎么能这样做呢。我尝试了一些东西,但它没有像我预期的那样工作。
SELECT distinct b.OrganisationID,b.OrganisationName
FROM tbl_organisation as a LEFT OUTER JOIN tbl_organisation as b
on a.OrganisationID=b.ParentID where a.OrganisationID=b.parentID
告诉我哪里错了 我在asp.net网站上使用它,我使用的是c#和mysql
答案 0 :(得分:0)
这与Hierarchail查询有关:
SELECT (LPAD('',level * 3,'')|| OrganisationID)为Org_id, 组织名称, 的parentID, 水平 FROM tbl_Organisation START WITH OrganisationID = ---
评论:在此处传递组织ID
CONNECT BY PRIOR OrganisationID = parentID
如果您将1作为OrganizationID传递,则输出将为
Org_id OrganisationName parentID LEVEL 1 Org1 1 2 Org2 1 2 4 Org4 2 3 6 Org6 4 4 5 Org4 2 3 3 Org2 1 2