※ 引述《bohei (run and fall)》之銘言:
: 小弟是用Oracle的,所以不確定是不是100%一樣,
: 第一層的EXISTS因為沒下任何跟外面相關連的條件,
: 所以當有select row即視為TRUE,再遇到NOT,當然就變成FALSE
: 你試著在第一層的EXISTS加上關聯條件,就可以得到不同的結果了~
: GO!
謝謝
剛剛試了一下 還是不太懂
然後之前
SELECT *
FROM s, p, sp
WHERE NOT
EXISTS (
SELECT *
FROM s
WHERE NOT
EXISTS (
SELECT *
FROM sp
WHERE s.s = sp.s
AND p.p = sp.p
)
);
上面這一串 我只改了第一個Not exists裡的From
從s,p改成s
就跑出
Sname s PName p s p
s1 1 p1 1 1 1
s2 2 p1 1 1 1
s1 1 p1 1 1 2
s2 2 p1 1 1 2
s1 1 p1 1 2 1
s2 2 p1 1 2 1
這樣的結果...
搞得我好亂阿= ="