資料庫NOT EXISTS考題 - 考試

Table of Contents

※ 引述《bestbestbest (思維)》之銘言:
: 資料表:
: 集會事件(事件編號,事件地點,開始日期,結束日期,估計人數,判定違法)
: 涉案者(涉案者號,姓名,事件編號,移送日期)
: 問題:
: 請找出在資料庫中參與了每一個被判定違法集會的人(列出涉案者號,姓名)
: 這題應該會使用到NOT EXISTS,想請問上面這題如何解答?
: 如果不使用NOT EXISTS解的話有其他方式解嗎?

等同找出所有不存在一個違法集會是沒有參與的人

不是很確定內層的NOT EXISTS是不是這樣寫 有錯煩請指正

select P1.涉案者號,P1.姓名

from 涉案者 P1

where NOT EXISTS (

select *

from 集會事件 E

where 判定違法=是 AND

NOT EXISTS(

select *

from 涉案者 P2

where E.事件編號=P2.事件編號 and P1.涉案者號=P2.涉案者號

)
)

記得老師說過NOT EXISTS寫得出的用NOT IN一定也可以

不過用NOT EXISTS就已經沒把握是對的所以就不獻醜了...

--

All Comments

Caitlin avatarCaitlin2015-03-03
如果not exists 可以,就表示 not in 也可以
Necoo avatarNecoo2015-03-03
我記得是相反吧,有些地方,用in解不了,必須用exists
Kama avatarKama2015-03-06
sorry,看錯了
Connor avatarConnor2015-03-06
雙重否定 不錯的練習
Liam avatarLiam2015-03-07
可以用exists就用exists