Czy są jakieś NULL w taxon_name_element.parent_id
? ?
Zapytanie...
select taxon_id
from taxon_name_element
where taxon_id not in (
select parent_id
from taxon_name_element
)
...jest odpowiednikiem...
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
...gdzie parent_id_X
są rzeczywistymi wartościami, które są obecnie w parent_id
kolumna. Jeśli chociaż jeden z nich ma wartość NULL, odpowiadający mu taxon_id <> parent_id_X
wyrażenia „zwiną się” do wartości NULL, przeciągając z nią całe wyrażenie WHERE.
Odfiltruj wartości NULL, aby uzyskać to, czego chcesz:
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
)