MariaDB / SQL запрос для узлов Leaf - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть структура БД, подобная этой:

id - parent_id - root_id - status

root_id - это идентификатор root функции, у которой нет ни одного родителя или root , Это может иметь или не иметь детей. Parent_id является дочерним parent_id. parent_id и root_id могут совпадать.

Поэтому мне нужен запрос SQL, чтобы найти все конечные узлы. К вашему сведению, операция root также может быть конечным узлом, если у него нет дочерних узлов.

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете использовать not exists для фильтрации строк, чьи id не отображаются в столбце parent_id:

select t.*
from mytable t
where 
    t.status = 'ongoing'
    and not exists (select 1 from mytable t1 where t1.parent_id = t.id)
...