В настоящее время я пытаюсь оптимизировать базу данных путем объединения запросов.Но я продолжаю заходить в тупик, оптимизируя запрос доступности номеров.
У меня есть таблица доступности номеров, где в каждой записи указано доступное количество номеров на дату.Он имеет следующий формат:
- room_availability_id (PK)
- room_availability_rid (fk_room_id)
- room_availability_date (2011-02-11)
- room_availability_number (количество доступных номеров)
Проблема в том, чтобы получить список номеров, доступных для КАЖДОГО из предоставленных дней.Когда я использую IN () примерно так:
WHERE room_availability_date IN('2011-02-13','2011-02-14','2011-02-15')
AND room_availability_number > 0
Если у 14-го есть доступность 0, это все равно дает мне другие 2 даты.Но мне нужен только номер room_id, когда он доступен на ВСЕХ трех датах.
Скажите, пожалуйста, есть способ сделать это в MySQL, кроме запроса каждой комбинации дата / комната / доступность отдельно (это то, что делаетсясейчас :-()
Я перепробовал все виды комбинаций, пытался использовать room_availability_date = ALL (...), пробовал несколько грязных повторяющихся подзапросов, но безрезультатно.
Заранее спасибоза любые мысли!