У меня есть следующая таблица .
Я бы хотел найти в запросе следующее:
Имена моряков для моряков, которые резервируют ТОЛЬКО лодки, которые бронирует Браун (имеется в виду только Браун и Блейк.вверх, так как они единственные, кто только резервирует Лодку 1 и Лодку 4 в таблице резервирования).
Я попробовал следующее и даже использовал калькулятор реляционной алгебры , как и язастрял.Я могу добраться до точки, где во всех строках таблицы указаны правильные лодки, однако я не знаю, как исключить записи с дополнительными лодками поверх этого.Вся помощь будет оценена.Спасибо.
X = π SN, BN (Reservation) ⨝ π SN, Name (Sailer)
Y = π SN, BN (Reservation) ⨝ π BN (Boat)
Z = X ⨝ Y
CONTAINING = π Name, SN, BN (Z) / π BN (σ Name = 'Brown' (Z)) ⨝ Z
LAST = CONTAINING - π SN, BN, Name (σ Name = 'Brown' (Z))
RESERV = γ Name; count(Name)->NUM_RESERV (CONTAINING)
π Name (σ NUM_RESERV = NUM_RESERV RESERV)
Это производит:
Sailer.Name:
Smith
Blake
Brown