有人可以帮助我理解我们如何获得查询的以下结果
10
数据是
Select RECIPIENTNAME from donations A
where not exists
((SELECT DONORORGANIZATION
from donations
where RECIPIENTNAME = 'Chambell')
MINUS
(SELECT DONORORGANIZATION
from donations B
where B.RECIPIENTNAME =A.RECIPIENTNAME ));
根据我的理解,内部子查询不是空的,所以它应该返回FALSE不存在,因此结果中不应该有元组。
我哪里错了?
请帮忙。
答案 0 :(得分:1)
这是您的查询:
Select RECIPIENTNAME
from donations A
where not exists ((select DONORORGANIZATION
from donations
where RECIPIENTNAME = 'Chambell'
) MINUS
(select DONORORGANIZATION
from donations B
where B.RECIPIENTNAME = A.RECIPIENTNAME
)
);
子查询得到所有组织" Chambell"是因为外部收件人不在。如果收件人在" Chambell"的所有组织中,这是空的。显然," Chambell"符合这个条件。和所有组织中的其他人一样,#Chambell"。
请注意,这并不会返回您的确切输出,因为这只会返回一列。