Как изобразить «не существует» в реляционной алгебре? - PullRequest
4 голосов
/ 17 сентября 2010

Как мне представить SQL-выражение "не существует" в реляционной алгебре?

Ответы [ 2 ]

0 голосов
/ 07 марта 2013

В моем случае я решил эту проблему, переписав запрос,

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)

Возвращает тот же результат и его легче переписать в реляционную алгебру с помощью объединения.

0 голосов
/ 17 сентября 2010

Я думаю, что вы ищете экзистенциальный квантификатор (∃), который вы могли бы затем отрицать (~ ∃).

Ответ на комментарий: Я не помню большую часть своей реляционной алгебры, но если бы я собирался нанести удар, я бы предположил что-то вроде: σ ∃σ (У) (S). Или, возможно, π ∃π (Y) (S); Я не совсем помню, если вы хотите, чтобы выбор или прогноз для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...