Для клиента я создал сайт о путешествиях.Теперь они попросили меня оптимизировать и автоматизировать некоторые вещи.Одна из этих вещей заключается в том, что места размещения, указанные в списке поиска, должны быть зарезервированы.
Упрощенно, это структура
У меня есть объект размещения, объект размещения имеет 1 или более ценовых периодов.
Что мне нужно сделать, это выбрать последний ценовой период, связанный с данным жильем.Период цены имеет поле date_until, которое является отметкой времени.В запросе должна быть сделана проверка, текущая временная метка должна быть меньше последней временной метки из ценового периода.
Это легко сделать со вторым запросом, который просто получает последнюю временную метку из таблицы ценовых периодов из всехPricePeriod-строки, связанные с данным размещением.
Мне интересно, если это лучший случай, или я должен использовать подзапрос для этого.И если да, то как будет выглядеть такой запрос?У меня нет большого опыта работы с подзапросами.
Обновление
Структура таблицы (простая)
Размещение -> ID
PricePeriod -> ID |AccommodationID |DateUntil
Упрощено:
SELECT fieldlist FROM Accommodation WHERE ID = $id
SELECT MAX(DateUntil) FROM PricePeriod WHERE AccommodationID = $id
Но я бы хотел это сделать одним запросом.Я надеюсь, что так понятно ..