Има ли NULL в taxon_name_element.parent_id
?
Запитването...
select taxon_id
from taxon_name_element
where taxon_id not in (
select parent_id
from taxon_name_element
)
...е еквивалентно на...
select taxon_id
from taxon_name_element
where
taxon_id <> parent_id_1
AND taxon_id <> parent_id_2
...
AND taxon_id <> parent_id_N
...където parent_id_X
са действителните стойности, които в момента са в parent_id
колона. Ако дори едно от тях е NULL, съответният taxon_id <> parent_id_X
изразите ще се „свият“ в NULL, плъзгайки целия израз WHERE с него.
Филтрирайте NULL, за да получите това, което искате:
select taxon_id
from taxon_name_element
where taxon_id not in (
select parent_id
from taxon_name_element
where parent_id is not null
)