※ 引述《Sunofgod ( )》之銘言:
: ※ 引述《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就已經沒把握是對的所以就不獻醜了...
下面是我試寫一段不用not exists的語法,
寫的有點鳥,但運行出來是正確的,可以參考看看!
SELECT 涉案者號
FROM 涉案者 A
WHERE EXISTS