sqlserver not in 吃虧例項

2021-10-05 09:22:33 字數 905 閱讀 5638

之前做過乙個課題,將a表中的a欄位資料與b表中的a欄位資料進行對比,然後將a表中有但是b表中沒有的a資料新增到b**中

這裡不說如何去新增,而是如何去搜尋

這裡一開始我想的很簡單

select

afrom

awhere

a.a not in (

select

afromb )

這樣寫了,一開始是沒有什麼問題的,搜尋也正常進行,插入也沒有出問題,我就這樣過去了沒有管,但是後來有人找了我發現ab兩張表中的a數量並不平衡
這裡我又檢索了一遍我的語句,確實搜尋出來的結果是0條,但是a,b表中的資料確實不平衡,個數對不上,我就懷疑是我的語句出了問題,

在網上搜了一下,使用了另一條語句

select * from b where (select count(1) as num from a where a.id = b.id) = 0

發現是可以的,那麼一定是語句除了問題,這條語句很簡單,唯一可能出問題的也就是not in 這個地方會有問題

那麼為什麼not in 會出現問題呢

這個解釋不是不存在於的意思嗎

的確not 的意思是不存在於,但是in 實際上的意思是

例如這個圖,not in 這裡可以理解為

where (內部編號 !='2020hbd318' and 內部編號 !='2020hbd319')
當你的b表中存在null時,那麼就等於加了乙個

where (內部編號 !=null)
查詢就會一直為

早上吃姜,勝吃參湯

早上吃姜,勝吃參湯。喝薑湯發汗,要去皮。喝生薑紅棗茶驅寒,則不去皮。做菜用姜,要帶皮,以免偏性。吃大閘蟹用的薑汁可以去皮。午吃姜,癆病戕 很多人都知道晚上不宜吃姜。其實,不僅是晚上,中午以後就應該不吃姜了。過午不食姜,否則容易傷肺。晚吃姜,見閻王 1.先把生薑切成薄片。最好使用鮮薑,鮮薑有非常好的藥...

賞吃貨風采,品吃貨語錄

1 堅決抵制轉動圓桌吃飯,受不了了,隨時都要擔心喜歡的菜被人夾了,吃個飯擔驚受怕的眼珠子都盯疼了。3 餡無限趨向於零的包子其實就是饅頭。乙個理科的吃貨這樣說。4 不要動不動說自己是吃貨,我都上了自助餐黑名單都沒炫耀過。5 有時候一頓吃多少不在於飯量體型,而在於飯碗大小和盛了多少。6 對於吃貨學生來說...

過年吃花生

又是一年的除夕,結束了一年的忙碌,結束了一年的勞累,一家人一起圍坐在一起吃年夜飯。吃過年夜飯,我們這裡有個習俗,就是會一起吃花生,花生,又名 長生果 很吉利的小名 新年吃花生,有著其特殊的意義!quote 花生,不少地方稱它為 長生果 這是不無道理的。這一方面是由於花生具有很高的營養價值,另一方面是...