我正在准备期末考试,在过去的一次考试中出现了这样的情况:
表:护士- (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))
这个查询是做什么的?我可以理解子查询返回多伦多所有没有护士工作的医院,但我不知道这与不存在部分有什么联系。
发布于 2013-04-20 03:47:18
分阶段审议:
The set of nurses where
there does not exist
a hospital in Toronto where the nurse doesn't work.根据排除的中间定律,这成为
The set of nurses where
the nurse works in all Toronto hospitals请注意在与评论员讨论时提出的以下几点:
发布于 2013-04-20 04:12:03
对于每个护士,子查询获取、多伦多所有医院、和不包括、S/他工作的所有医院、。这给我们留下了多伦多医院,在那里S/他不工作。为了满足NOT EXIST,这位护士的这种列表需要是空的。所以这位护士必须在多伦多的每一家医院做的工作。
因此,查询返回在多伦多每一家医院工作的护士。
考虑到多伦多的规模和医院的数量,这是不可能的,但这仍然是答案。
https://stackoverflow.com/questions/16116287
复制相似问题