У меня есть два стола, один для открытий и другой для заказов. Запись в таблице бронирований всегда относится к открытию, и для каждого открытия может быть несколько бронирований. Я хотел бы извлечь все отверстия, которые имеют бронирование, отличное от bookingType 'C'
.
например.
если у открытия есть 3 бронирования типа A, B и C, оно НЕ должно отображаться
в результате
, если у открытия есть только заказы типа A и B, это должно появиться в
результат
Вот то, что я пробовал, но это неверно, так как в примере 1 ничего не получается:
select op.id, bo.id
from opening op
left join booking bo on bo.openingId = op.id
where bo.bookingType != 'C';
Вот полный запрос, относящийся к временным интервалам:
select op.id, bo.id
from opening op
left join booking bo on bo.openingId = op.id
where ((bo.arrivalDate < '2009/06/20' AND bo.departureDate <= '2009/06/20') OR
(bo.arrivalDate >= '2009/06/27' AND bo.departureDate > '2009/06/27'))
То, что я раньше называл bookingType
, на самом деле было интервалом времени, определенным через два столбца arrivalDate
и departureDate
: в приведенном выше примере мне нужны все отверстия, которые НЕ имеют бронирования между 20th June 2009
и 27th June 2009
.