前言

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

初步探討NOT EXISTS和NOT IN

NOT EXISTS和NOT IN有很大的不同,尤其是對(duì)NULL的處理,為何這樣說(shuō),當(dāng)子查詢中有NULL時(shí),此時(shí)NOT IN不會(huì)返回任何行,下面我們來(lái)看下簡(jiǎn)單的示例。

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

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
)

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

首先我們來(lái)通過(guò)NOT EXISTS來(lái)進(jìn)行查詢

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

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn) 

接下來(lái)我們?cè)賮?lái)進(jìn)行NOT IN查詢

        		

延伸閱讀

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