Re: [SQL ] not exist與not in的差別

看板Database作者 (我是胖達不是胖呆喲^ ^)時間10年前 (2014/07/14 23:23), 10年前編輯推噓0(002)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《panda555 (我是胖達不是胖呆喲^ ^)》之銘言: : (針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行) : 資料庫名稱: : 資料庫版本: : 內容/問題描述: : 有一個資料庫的表格 Table,欄位如下: : 訂單號碼、訂單明細、訂單日期、供應商代號、供應商名稱、供應商地址、供 : 應商聯絡人、電話、料號、品名、規格、數量、單位、單價、金額、備註 : (其中,有劃底線的是鍵值。一張訂單可以購買好幾項物品,每一項一行,而「訂單明 : 細」是訂單的項次,其值為1,2,3,…) : 有那一個供應商,我們只和他買很貴(單價超過 5 萬元)的東西? : not exist與not exist的寫法 : Select 供應商代號,供應商名稱 : From Table A : where not exists : (Select * : From Table B : where 單價>50000 and not exists : (Select * : From table C : where B.料號=C.料號 : and A.供應商代號=C.供應商代號) : ) : not IN的寫法 : Select 供應商代號,供應商名稱 : From Table A : where 供應商代號 NOT IN : (Select 供應商代號 : From Table B : Where 單價<=50000) : 想問一下這2句SQL為什麼出來的結果不一樣呢? : not exist....not exist為什麼會錯呢?? 大大的意思是 not exist not exist的除法條件比較嚴格嗎? 因為我看2種都有負負得正的意思耶 除法的意思是所有50000以上都要賣 這個廠商才會列出的意思嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.234.69 ※ 文章網址: http://www.ptt.cc/bbs/Database/M.1405351429.A.91C.html ※ 編輯: panda555 (111.243.234.69), 07/14/2014 23:24:15

07/19 16:42, , 1F
怎麼要令外po文,順道回應你,這兩者的語法做出來的差異
07/19 16:42, 1F

07/19 16:42, , 2F
在WHERE的部分,NOT EXIST 也不是真正有負負得正的意思
07/19 16:42, 2F
文章代碼(AID): #1Jm_O5aS (Database)
文章代碼(AID): #1Jm_O5aS (Database)