※ 引述《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