如何在关系代数中表示 SQL“不存在”子句?
问问题
10403 次
3 回答
3
于 2020-01-26T19:50:32.433 回答
-1
我认为您正在寻找存在量词(∃),然后您可以否定 (~∃)。
对评论的回应:我不记得我的大部分关系代数了,但是如果我要尝试一下,我会猜测以下内容:σ∃σ(Y) (S)。或者可能是 π ∃π(Y) (S); 我不太记得你是否想要选择或投影。
于 2010-09-17T18:52:34.493 回答
-3
就我而言,我通过重写查询解决了这个问题,
SELECT *
FROM contactperson
WHERE EXISTS(
SELECT *
FROM person
WHERE contactperson.personId = person.id)
至:
SELECT *
FROM contactperson
WHERE personId = (
SELECT id
FROM person
WHERE contactperson.personId = person.id)
它返回相同的结果,并且更容易使用连接重写为关系代数。
于 2013-03-07T12:01:02.347 回答