Как сделать рекурсивный запрос, используя временную таблицу в Mysql - PullRequest
0 голосов
/ 02 ноября 2011
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

1 Ответ

0 голосов
/ 02 ноября 2011

Это относится к запросу Hierarchail:

SELECT (LPAD ('', level * 3, '') || OrganisationID) как Org_id, OrganisationName, parentID, LEVEL FROM tbl_Organisation START WITH OrganisationID = ---

Комментарий: укажите здесь идентификатор организации

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 5Org4 2 3 3 Org2 1 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...