Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn KHÔNG TRONG MySQL không hoạt động

Có bất kỳ NULL nào trong taxon_name_element.parent_id không ?

Truy vấn ...

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

... tương đương với ...

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

... ở đâu parent_id_X là các giá trị thực hiện có trong parent_id cột. Nếu ngay cả một trong số chúng là NULL, thì taxon_id <> parent_id_X tương ứng biểu thức sẽ "thu gọn" thành NULL, kéo theo toàn bộ biểu thức WHERE với nó.

Lọc ra NULL để đạt được thứ bạn muốn:

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. Ý nghĩa của dấu chấm hỏi trong MySQL tại cột WHERE là gì =??

  2. cách cung cấp cùng một số sê-ri cho nhóm bản ghi trong mysql

  3. lỗi khóa ngoại mysql # 1452

  4. Tự động đặt __tablename__ cho sharding trong SQLAlchemy?

  5. Khi bạn có một trường TEXT trong MySQL hoặc PostgreSQL, bạn có nên đặt nó trong một bảng riêng không?