Re: [課業] 資料庫NOT EXISTS考題

作者: Sunofgod ( )   2015-03-01 14:02:20
※ 引述《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就已經沒把握是對的所以就不獻醜了...
作者: ARCHERDEVIL (開弓)   2015-03-01 22:57:00
如果not exists 可以,就表示 not in 也可以
作者: fcouple (盲人騎瞎馬,夜半臨深池)   2015-03-02 09:07:00
我記得是相反吧,有些地方,用in解不了,必須用existssorry,看錯了
作者: vaio5566 (賣肉56)   2015-03-02 14:05:00
雙重否定 不錯的練習
作者: skygift (SkY)   2015-03-02 20:17:00
可以用exists就用exists

Links booklink

Contact Us: admin [ a t ] ucptt.com