MySQL中,not in子查詢

2021-05-24 21:50:55 字數 925 閱讀 8574

今天寫sql語句的時候,希望通過not in子查詢來限制查詢結果,實際sql語句如下:

select  id as id, type_code as typecode , type_name as typename ,

parent_id as parentsid , style as style , levels as levels

from type_code

where parent_id = '30119a0e-2f57-473d-9f1d-2843561e9064' and id not in

( select  parent_id from type_code where parent_id);

結果滿足查詢的條件為空……

後來發現,子查詢中存在欄位的某些值為null,所以導致了count=0. 

所以,將sql調整為如下:

select  id as id, type_code as typecode , type_name as typename ,

parent_id as parentsid , style as style , levels as levels

from type_code

where parent_id = '30119a0e-2f57-473d-9f1d-2843561e9064' and id not in

( select  parent_id from type_code where parent_id is not null);

這樣就能正確的查出結果了!

總結:mysql中如果要用not in在子查詢中限制結果,那必須要將子查詢的結果集限制為不含null,不然查詢結果count = 0.

allen

2011-03-29

mysql 子查詢 排序 MySQL的子查詢中排序

起因 create table reading record id int primary key auto increment,自增主鍵 file varchar 255 閱讀檔名 user varchar 255 讀者 expend int,閱讀時長 time datetime,閱讀時間 一開始...

關於hive中not in不支援子查詢的解決方法

表資訊 使用者user表 userid,name 黑名單banuser表 userid,name 問題 找出不在黑名單中的使用者資訊 userid,name hive暫時不支援以下查詢方式 select aa.from user aa where aa.user not in select a.us...

mysql中IN子查詢排序

這幾天做乙個查詢,需要在乙個指定的結果集中進行查詢,例如 select from table name where doc id in 1dba c20a 907b 其中in子句中的doc id列表是通過呼叫乙個外部介面獲得一組doc id常量列表,然後在本地庫中搜尋符合這個列表的資料 記錄。後來發...