sql >> Database teknologi >  >> RDS >> Mysql

MySQL NOT IN-forespørgslen virker ikke

Er der nogen NULL i taxon_name_element.parent_id ?

Forespørgslen...

select taxon_id 
from taxon_name_element
where taxon_id not in (
    select parent_id
    from taxon_name_element
)

... svarer til ...

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

...hvor parent_id_X er faktiske værdier, der i øjeblikket er i parent_id kolonne. Hvis selv en af ​​dem er NULL, vil det tilsvarende taxon_id <> parent_id_X udtryk vil "kollapse" til NULL og trække hele WHERE-udtrykket med.

Filtrer NULL'er for at få det, du ønsker:

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
)


  1. Hvordan viser jeg udvidelser installeret i en database ved hjælp af psql?

  2. Standarder for tilføjelse af dato/klokkeslæt?

  3. Sådan tjekker du databasen på en ikke-rodfæstet Android-enhed

  4. Codeigniter - flere databaseforbindelser