[SQL ] 新手求助巢狀No exists

看板Database作者 (中山的遊客)時間9年前 (2014/08/01 18:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
(針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行) 資料庫名稱: MySQL 資料庫版本: 客戶端版本: 5.0.51a 內容/問題描述: 新手亂試試到頭暈...還希望有高手解釋一下 table如下 P S sp --------- ---------- ------------- p pname s sname s p 1 p1 1 s1 1 1 2 p2 2 s2 1 2 2 1 以下是我的問題(雖然我猜實際上不會出現這種用法) SELECT * FROM s, p, sp WHERE NOT EXISTS ( SELECT * FROM s, p WHERE NOT EXISTS ( SELECT * FROM sp WHERE s.s = sp.s AND p.p = sp.p ) ); 為何這結果顯示空呢??? 我原先以為是先From中的s,p,sp先cross join後再判斷Not exist的巢狀子句 (這是我第一個問題,我不確定這想法對不對,google後又沒發現相關的資料) 而巢狀子句出來的結果是 sname s pname p s2 2 p2 2 那為何not exists判別全部都是False呢? 我也試過把 From s,p,sp只改成 From s 結果也是為空 所以實在想不出為何是這結果了..... 真心希望有高手能指點一下... 到底SQL實際再電腦跑程式時順序判斷上有哪方面的資料可以看 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.195.54 ※ 文章網址: http://www.ptt.cc/bbs/Database/M.1406888475.A.CDB.html
文章代碼(AID): #1JsseRpR (Database)
文章代碼(AID): #1JsseRpR (Database)