Скажем, у меня есть Persons
table с атрибутами {name, pet}
. Как выбрать имена людей, у которых есть по одному питомцу каждого вида (dog, cat, bird)
, но у человека есть только по одному питомцу каждого вида, если он указан в таблице.
Пример: Bob, Dog
и Bob, Cat
- единственные строки в таблице. Следовательно, у Bob
есть по одному питомцу каждого вида. Но в момент добавления Lynda, Bird
у Bob
больше нет по одному питомцу каждого типа.
Я думаю, что первый шаг к этому - π(pet)
. Вы получаете список всех видов домашних животных, поскольку реляционная алгебра удаляет дубликаты. Не знаю, что делать после этого, но думаю, мне нужно присоединиться к π(pet)
и Persons
.
Я пробовал несколько вещей, например продукты Natural Join и Cross, но пока не добился результата, и у меня закончились идеи.