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