【沫沫金】Sql子查詢Not In 無結果原因
select * from ITEM where item_id not in (select parent_item_id from ITEM )
查詢效果
無任何匹配值。。。
原因
not in 解析後的執行語句是(id!=1 and id!=2 and id!=null)
註意,其中的null。空值存在將會導致條件整體失敗,所以無任何匹配數值。
解決方案
排除null值,即可完成期望結果。
select * from ITEM where item_id not in (select parent_item_id from ITEM where parent_item_id is not null)
調整後的Sql,執行效果如下
回顧下,not in 是and條件,不能有null值。樹結構,父級字段免不了有空值,所以查詢不到。排除null值即可。
【沫沫金】Sql子查詢Not In 無結果原因
相關推薦
【沫沫金】Sql子查詢Not In 無結果原因
空值 blog mar 執行 sel ges 期望 ima 數值 背景源碼 select * from ITEM where item_id not in (select parent_item_id from ITEM ) 查詢效果 無任何匹配值。。。 原因 not in
【沫沫金】Sql查詢樹結構所有終極子節點
where 分享 逆向 code 自由 存儲 思維 數據 sql查詢 背景 項目中,存在一張自由表單存儲表,即不固定列,也許是2列、3列、4列。但是倒數兩列是結果和備註,需要數據交互的地方。 動態表中,每一個單元格存儲一行,記錄父子關系。 需求 根據模板數據列,解析後存入數
【T-SQL基礎】03.子查詢
引用 鏈接 編程 pac tom 單表 獨立 但是 company 閱讀目錄 概述: 一、獨立子查詢 二、相關子查詢 三、練習題 以前總是追求新東西,發現基礎才是最重要的,今年主要的目標是精通SQL查詢和SQL性能優化。 本系列【T-SQL基礎】主要是針對T-S
【find_in_set】SQL中查詢某個特定字串出現在指定欄位(N子鏈)中的位置
在mysql資料庫中,我們會經常用到in語法,用來查詢某個欄位包含N子鏈中的一個或多個字串,如: select * from table where id in('1,2,3,4'); 但如果某個欄位本身是儲存的N子鏈,然後需要查出其中擁有某個特定值呢?這種需求在
【轉】SQL模糊查詢
使用 模式 正則表達 bcd 一個 長度 排除 lsp [] 在進行數據庫查詢時,有完整查詢和模糊查詢之分。一般模糊查詢語句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 條件 其中關於條件,SQL提供了四種匹
【mysql優化五】——sql語句優化查詢
前言 上篇講解了索引搜尋優化,其實索引只是sql查詢優化的一部分,本篇主要講解的是sql優化主要要優化的部分! 內容 一.order by 優化 orderby最好使用index排序方式,避免使
【資料庫】SQL模糊查詢
SQL的模糊查詢是當不清楚資料庫中的具體關鍵詞時使用的一種查詢方式,最主要的關鍵詞時like,and與%。 like like用於在where子句中搜索列中的指定模式。 語法: SELE
【mysql】關於子查詢的一個例子
假設表my_tbl包含三個欄位a,b,c;現在需要查詢表中列a的每個不同值下的列b為最小值的記錄量。 比如表記錄為: a b c 1 3 'cd' 2 3 'nhd' 1 5 'bg
【JAVAEE學習筆記】hibernate04:查詢種類、HQL、Criteria、查詢優化和練習為客戶列表增加查詢條件
沒有 arrays getpara tex response 寫法 sum exceptio 提高 一、查詢種類 1.oid查詢-get 2.對象屬性導航查詢 3.HQL 4.Criteria 5.原生SQL 二、查詢-HQL語法 //學習HQL語法 public
【LeetCode刷題】SQL-Combine Two Tables
介紹 左關聯查詢 col 每一個 cit http sid combine sql查詢 Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ |
sql子查詢
編寫 min style side lower any 編號 示例 操作 子查詢就是指的在一個完整的查詢語句之中,嵌套若幹個不同功能的小查詢,從而一起完成復雜查詢的一種編寫形式,為了讓讀者更加清楚子查詢的概念。子查詢返回結果子查詢可以返回的數據類型一共分為四種:單行單列:返
【2018-01-19】Sql Server-觸發器
1-1 觸發器 eight sco 不能 val ted 直接 ins 1 --create table users--創建用戶表 2 --( 3 -- ids int primary key identity(1,1), 4 -- name nvar
【2018-01-19】Sql Server-視圖,事務
user from 增刪 span 影響 score 允許 gin 事務 ----視圖增刪改操作不影響基礎表 ----視圖不允許出現重復列 create view haha--創建視圖 as select student.*,Score.Cno,Score.Degre
MySQL數據庫學習【第七篇】單表查詢
not null for 比較運算符 創建 字符串 直接 過濾 field gpo 先創建表 #創建表 create table employee( id int not null unique auto_increment, name varchar(20) not
SQL 子查詢
單個 調用 不依賴 相關子查詢 date 1.2 like p s tid SQL支持在查詢中編寫查詢,或者嵌套其他查詢。最外層查詢的結果集會返回給調用者,稱為外部查詢。內部查詢的結果是提供給外部查詢使用的,也成為子查詢。 子查詢可以分為獨立子查詢和相關子查詢兩類。獨立子
sql子查詢 嵌套SELECT實用語句
exp ring union res pda als 老師 效果 存在 嵌套SELECT語句也叫子查詢,一個 SELECT 語句的查詢結果能夠作為另一個語句的輸入值。子查詢不但能夠出現在Where子句中,也能夠出現在from子句中,作為一個臨時表使用,也能夠出現在selec
sql子查詢 order by失效問題
一、問題描述 三表聯合查詢 按主表的時間倒敘並分頁 下面sql語句 ORDER BY失效 ,如果把 ORDER BY 放在最後 比如有20條資料 第一頁會是10 -1 第二頁是20-11 分頁不正確 查詢資料發現:在my
【劍指offer】連續子陣列最大和
題目:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:{6,-3,-2,7,-15,1,2,2},連續子向量的最大和為8(從第0個開始,到第3個為止)。給一個數組,返回它的最大連續子序
SQL子查詢、相關子查詢
子查詢 子查詢是巢狀在其他查詢中的查詢。子查詢總是從內向外處理。 注意: 1、在使用子查詢時儘量把子查詢分解為多行並且適當進行縮排,能極大的簡化子查詢的使用。 2、不能巢狀太多的子查詢,這樣會降低效能。 3、在WHERE子句中使用子查詢,應該保證SELECT語句具有
Django學習【第28篇】:優化查詢的方式 優化查詢的方式
優化查詢的方式 一、假設有三張表 Room id 1 2 .