大家说怎么来理解EXISTS好呢?

FROM 2001-10-27 08:12:09
EXISTS 这个是什么意思呀,特别是加了NOT 以后 NOT EXISTS更难理解呀
比如要查询做过所有A事件的人的名单,可以理解为没有一个A事件没有做的人的名单,就用EXISTS来实现,可是变成语句后我就不理解了呀,大家说怎么来理解EXISTS好呢?
...全文
112 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
FROM 2001-10-27
  • 打赏
  • 举报
回复
补充一下A事件是个集合也就是说有很多事件A1,A2,A3,A4,A5 等等,
要求做过A集合里的所有事件,但是不能用WHERE EVENT-ID=‘A’来说明的,
KingSunSha 2001-10-27
  • 打赏
  • 举报
回复
exists是一个逻辑判断子句,当exists后面的sql查询返回至少一个记录的时候,该条件为真。not exists的意思正好相反。

比如你的事件表是这样的
event(event_id, person_id,....)
那么要查做过所有A事件的人,用不到exists
select persion_id
from event
where event_id = 'A';

要查所有没做过A事件的人,倒可以用not exists(或者用not in)
select distinct person_id
from event x
where not exists (select 'x' from event y
where y.event_id = 'A'
and y.person_id = x.person_id)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧