[SQL ] 新手求助巢狀No exists
(針對 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
討論串 (同標題文章)