Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie MySQL NOT IN nie działa

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
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Yii2:Kartik Gridview suma kolumny w stopce

  2. Wybierz wartości zaczynające się od liczby

  3. Otrzymuję podwójne wyniki z zapytania mysql, gdy używam znaków międzynarodowych, tj. Å/Ę=A i Ö=O,

  4. Wstawianie JSON do MySQL za pomocą Pythona

  5. Jak utworzyć obiekt JSON w MySql z wartością logiczną?