у меня есть таблица ниже, называемая резервами на сервере MySQL 8.0:
RESERVES (
res_id INT NOT NULL AUTO INCREMENT,
product_id INT NOT NULL,
start_date DATE NOT NULL,
finish_date DATE NOT NULL,
PRIMARY KEY(res_id),
FOREIGN KEY(product_id) REFERENCES PRODUCT(product_id) ON UPDATE CASCADE ON DELETE RESTRICT
);
клиент заполняет форму, чтобы указать даты, которые он хочет (start_res_date и finish_res_date), поэтому я должен сделать запросчтобы проверить, доступен ли он в этот период времени.
Я застрял здесь, главным образом потому, что может быть несколько резервирований для этого конкретного продукта.
, вот так:
SELECT DISTINCT product_id FROM RESERVES
WHERE start_res_date >= finish_date OR finish_res_date <= start_date
не будет работать, потому что он вернет product_id, если он в порядке с датами одного из своих резервов.
что я хочу, это отклонить его product_id, если он недоступен хотя бы для одного резерва в таблице.
есть идеи, как к нему подойти?спасибо.