NOT IN 亂像(子查詢建議使用 NOT EXISTS 代替 NOT IN)
舉個例子:
如下圖:
A、B 表的資料如上圖所示,
語句:
SELECT A.ID FROM A WHERE AID NOT IN (SELECT ID FROM B);
該語句的結果集,由於 B 表中空值(oracle:空字串或者null;mysql:null值),將永遠為空,無論 A 表的資料是什麼樣子。
有些時候,這可能與我們設想的邏輯不符。
建議自子查詢的時候,儘量使用 not exists,既可以保證效率,又可以防止子查詢中有空值(oracle:空字串或者null;mysql:null值)
下面將介紹Mysql與Oracle的子查詢中 使用 NOT IN 的區別
mysql結果如圖:
oracle如下圖:
相關推薦
NOT IN 亂像(子查詢建議使用 NOT EXISTS 代替 NOT IN)
舉個例子: 如下圖: A、B 表的資料如上圖所示, 語句: SELECT A.ID FROM A WHERE AID NOT IN (SELECT ID FROM B); 該語句的結果集,由於 B 表中空值(oracle:空字串或者null;mysql:null值),將永遠
Hive 不支援 where 子句中的子查詢, SQL 常用的 exist in 子句需要改寫。這一改寫相對簡單。考慮以下 SQL 查詢語句:
歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Markdown編輯器進行了一些功能
TP5 JOIN 多條件(子查詢)
一:例子需求:統計多個使用者下對應的(使用者表),簽到活動次數(活動表)/ 報名活動次數(報名表)與其他 //子查詢(用group 把使用者分組,統計簽到表中每個使用者簽到的次數) $activitySign = Db::name('activity_sign')
MySQL開發技巧 第二禪(子查詢中匹配兩個值、解決同屬性多值過濾的問題、計算累進稅的問題)
一、如何在子查詢中匹配兩個值 mysql子查詢的使用場景及其好處 1、什麼是子查詢?
SQL Server調優系列基礎篇(子查詢運算總結)
前言 前面我們的幾篇文章介紹了一系列關於運算子的介紹,以及各個運算子的優化方式和技巧。其中涵蓋:檢視執行計劃的方式、幾種資料集常用的連線方式、聯合運算子方式、並行運算子等一系列的我們常見的運算子。有興趣的童鞋可以點選檢視。 本篇我們介紹關於子查詢語句的一系列內容,子查詢一般是我們形成複雜查詢的一些基礎性操
SQL SERVER 子查詢使用Order By;按In排序
【子查詢】使用order by select * from (select top 100 percent * from table order by id) a 這是發現結果沒有按id排序,需要將100 percent 改成 99.999 percent 或10000000(儘量大)
建立表空間、建立表(子查詢建立表)、表的約束、事務、資料庫物件(檢視、序列、索引、同義詞)、PLSQL程式設計、(if,迴圈)、資料的匯入匯出備份
DDL語句管理表 DML管理表資料 1)語法: 建立 和 刪除 表空間 / 建立使用者 create tablespace 表空間的名稱 datafile '檔案路徑' //這個檔案是儲存在伺服器端的電腦上的
MySQL巢狀查詢(子查詢)
巢狀查詢 定義:一個內層查詢語句(select-from-where)塊可以巢狀在另外一個外層查詢塊的where子句中,其中外層查詢也稱為父查詢,主查詢。內層查詢也稱子查詢,從查詢。子查詢一般不使用order by子句,只能對最終查詢結果進行排序。 另一種定義:在一個SEL
maven國內鏡像(國內oschina的maven服務器關了)
添加 content mir -i tor 發現 國內 sch china Maven是官方的庫在國外,連下載速度很慢。國內oschina的maven服務器很早之前就關了。今天發現阿裏雲的一個中央倉庫,親測可用。 找到E:\maven\apache-maven-3.5.2\
牛客國慶集訓派對Day1 J-Princess Principal (區間查詢是否是正確的括號匹配)
阿爾比恩王國(the Albion Kingdom)潛伏著一群代號“白鴿隊(Team White Pigeon)”的間諜。在沒有任務的時候,她們會進行各種各樣的訓練,比如快速判斷一個文件有沒有語法錯誤,這有助於她們鑑別寫文件的人受教育程度。 這次用於訓練的是一個含有n個括
優化的直接插入排序(二分查詢插入排序,希爾排序)
本博文向大家介紹了插入排序的三種實現:直接插入排序,二分查詢插入排序,希爾排序。詳細分析的其實現過程、時間複雜度和空間複雜度、穩定性以及優化改進策略。最後簡單的做了下效能測試。 直接插入排序 (一)概念及實現 直接插入排序的原理:先將原序列分為有序區和無序區,然後再經過比較和後移操作將無序
配置IDEA自帶的倉庫映像(使Maven下載包的速度更快)
阿里雲映象(因訪問國外伺服器很慢) 配置阿里映象用maven下載快的一筆: (1)前言 使用IDEA自帶的maven時,若不配置映象,下載lib包的速度會很慢。因此,在不另外在本地安裝maven的情況下,直接使用IDEA自帶的maven就可以,下面是配置映象方法 (2
時間空間複雜度(二分查詢和斐波那契數列)
時間複雜度: 時間複雜度就是函式執行的基本操作次數(運算次數) 在實際中,我們通常考量的是這個函式的最壞執行情況,即最大執行時間。 使用 O 來標記最壞執行情況的漸進上界——O的漸進表示法 需要注意的
LeetCode 438. Find All Anagrams in a String(找到字串中所有字母異位詞)
Given a string s and a non-empty string p, find all the start indices of p’s anagrams in s. Strings consists of lowercase English
637. Average of Levels in Binary Tree(一棵樹每層節點的平均數)(二叉樹的層序遍歷)
sum i++ 頂點 span static 層遍歷 levels != new Given a non-empty binary tree, return the average value of the nodes on each level in the form o
oracle 子查詢中null的問題(in 和 not in)
這裡的in後面的句子可以理解為or拼接,簡單舉例即 in (9566,9839,null)可以等價於mgr=9566 or mgr=9839 or mgr=null, not in (9566,9839,null)可以等價於not(mgr=9566 or mgr=9839 o
【沫沫金】Sql子查詢Not In 無結果原因
空值 blog mar 執行 sel ges 期望 ima 數值 背景源碼 select * from ITEM where item_id not in (select parent_item_id from ITEM ) 查詢效果 無任何匹配值。。。 原因 not in
(異常查詢Empty set)mysql 中的 not in 注意事項——結果集中不能有null
注意 in 結果集有 null 不影響 not in 的結果集中出現 null 則查詢結果為 Empty set 實際應用(結果集存在有null) select t1.father_id from t_pub_link_info t1; +-
mysql not in null 子查詢問題
今天寫了一個sql: SELECT * from tableA a where a.mobile not in (select b.mobile from tableB b); 在本地的一個測試資料庫執行能查出資料,然後放外網查詢就沒有資料。 經過確定,外網是應該查出資料的,
mysql in 子查詢 效率慢 優化(轉)
現在的CMS系統、部落格系統、BBS等都喜歡使用標籤tag作交叉連結,因此我也嚐鮮用了下。但用了後發現我想查詢某個tag的文章列表時速度很慢,達到5秒之久!百思不解(後來終於解決),我的表結構是下面這樣的,文章只有690篇。 文章表article(id,title,content) 標籤表tag(tid,