前言

上一節(jié)我們分析了INNER JOIN和IN,對于不同場景其性能是不一樣的,本節(jié)我們接著分析NOT EXISTS和NOT IN,簡短的內(nèi)容,深入的理解,Always to review the basics。

初步探討NOT EXISTS和NOT IN

NOT EXISTS和NOT IN有很大的不同,尤其是對NULL的處理,為何這樣說,當子查詢中有NULL時,此時NOT IN不會返回任何行,下面我們來看下簡單的示例。

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

USE TSQL2012
GO

WITH table1 AS
(
    SELECT 1 AS value
    UNION ALL
    SELECT NULL AS nullcol1
),
table2 AS
(
    SELECT 2 AS value
    UNION ALL
    SELECT NULL AS nullcol2
)

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

首先我們來通過NOT EXISTS來進行查詢

SELECT * FROM table1 AS a 
WHERE NOT EXISTS(SELECT * FROM table2 AS b WHERE a.value = b.value)

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓 

接下來我們再來進行NOT IN查詢

        		

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓學習是年輕人改變自己的最好方式