首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个查询是做什么的?

问这个查询是做什么的?
EN

Stack Overflow用户
提问于 2013-04-20 03:37:30
回答 2查看 125关注 0票数 1

我正在准备期末考试,在过去的一次考试中出现了这样的情况:

表:护士- (nid:int,nname:string,age:real,工资:real,sid:int) 表:主管- (sid:int,评级:real) 表: WorksIn - (nid:int,hid:int,小时数:real) 表:医院- (hid:int,hname:string,tid:int) 表: Town - (tid:int,tname:string,镇长:string)解释以下查询检索的内容: 从不存在的护士N中选择nname (从H医院选择H.hid,其中H.town =‘多伦多’除外(从WorksIn W选择N.nid = W.nid))

这个查询是做什么的?我可以理解子查询返回多伦多所有没有护士工作的医院,但我不知道这与不存在部分有什么联系。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-20 03:47:18

分阶段审议:

代码语言:javascript
复制
The set of nurses where 
  there does not exist
    a hospital in Toronto where the nurse doesn't work.

根据排除的中间定律,这成为

代码语言:javascript
复制
The set of nurses where
  the nurse works in all Toronto hospitals

请注意在与评论员讨论时提出的以下几点:

  • 子查询分别对每个护士进行评估,而不是在所有护士的集合上单独评估。
  • 也就是说,每一位护士,在多伦多医院,护士不工作的那一套,都是空置的。对每个护士来说,他在多伦多的所有医院工作。
  • 将子查询理解为:“多伦多医院的集合,除了护士工作的医院(读为设置差或减)。”
票数 6
EN

Stack Overflow用户

发布于 2013-04-20 04:12:03

对于每个护士,子查询获取、多伦多所有医院、和不包括、S/他工作的所有医院、。这给我们留下了多伦多医院,在那里S/他不工作。为了满足NOT EXIST,这位护士的这种列表需要是空的。所以这位护士必须在多伦多的每一家医院做的工作。

因此,查询返回在多伦多每一家医院工作的护士。

考虑到多伦多的规模和医院的数量,这是不可能的,但这仍然是答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16116287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档