Реляционная алгебра - Как получить уникальные ценности пары - PullRequest
0 голосов
/ 29 марта 2020

Скажем, у меня есть отношение (СОТРУДНИК), такое как это:

+---------+-----------+---------+
| Manager | Researcher| Project |
+---------------------+---------+
| A1      |   A2      |    P1   |
| A2      |   A1      |    P2   |
| A2      |   A3      |    P2   |
| A3      |   A2      |    P3   |
| A1      |   A3      |    P3   |
--------------------------------+

В приведенной выше таблице описывается, в каком проекте работал менеджер, а работал исследователь.

Я хочу найти сотрудников, которые работали над проектом в качестве исследователя, которым управляет другой сотрудник, в то время как этот сотрудник работал исследователем в одном из проектов, который также управляется другим сотрудником.

А1 работал в P1 менеджером, а А2 работал исследователем. В проекте P2 А2 работал менеджером, а А1 работал исследователем. Поэтому я хочу собрать имена А1 и А2 вместе. Порядок не важен. То же самое для пар А2 и А3, но не для А1 и А3.

Так что результат, который я хочу получить, будет:

+-------+------------+
| Name1 |   Name2    |
+--------------------+
| A1    |   A2       |
| A2    |   A3       |
----------------------

Как я могу получить это отношение, используя реляционную алгебру.

1 Ответ

0 голосов
/ 30 марта 2020

Если вы хотите вернуть кортежи с A1 в качестве Name1, используйте предложение SELECT (σ): σName1 = A1 (COUPLES)

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