Я пытаюсь создать веб-сайт, который управляет портфелем объектов аренды. Владелец сайта может создать листинг для свойства. Имущество имеет стоимость по умолчанию за ночь, но также включает в себя возможность устанавливать специальную цену, например, на август.MySQL Query join
Пользователи сайтов могут затем перейти на сайт и ввести диапазон дат и выполнить поиск списков, доступных за этот период времени. Мне также необходимо на этом этапе посмотреть, есть ли специальная цена, чтобы заменить цену по умолчанию.
Так таблицы я являюсь:
listings
id
default_price
etc...
bookings
id
listing_id
checkin
checkout
special_prices
id
listing_id
from
to
price
Но я бесполезен в SQL запросов, и я не могу понять, что запрос будет выглядеть на списки, которые не имели заказов в течение временного периода, введенный и который получает special_price, если он существует.
Я использую cakephp, если это упрощает сбор запроса. Может кто-нибудь мне помочь?
EDIT Эй, ребята, я все еще пытаюсь понять это на минуте я просто сосредоточиться на получение списков, которые не имеют заказов, которые вступают в противоречие с указанными датами, и я разберусь специальные цены вещи после того
на минуту у меня есть:
$conditions = array(
"AND" => array(
"OR" => array(
"Listing.address_one LIKE" => "%".$area."%",
"Listing.address_two LIKE" => "%".$area."%",
"Listing.city LIKE" => "%".$area."%",
"Listing.postcode LIKE" => "%".$area."%",
"Listing.title LIKE" => "%".$area."%",
),
)
);
$this->Listing->bindModel(array('hasMany' => array('Booking' => array('conditions' =>array('Booking.checkin BETWEEN ? AND ?' => array($to, $from))))));
$data = $this->paginate('Listing', $conditions);
$this->set('data', $data);
Это получает все результаты, которые соответствуют $ области ключевого слова в списке перевалы, но, кажется, полностью игнорировать таблицу заказов. Я пробовал вставлять NOT BETWEEN, чтобы узнать, не изменилось ли это, и оно все равно просто возвращает все совпадения $ area и, по-видимому, игнорирует бронирование между запрошенными датами.
У вас есть идеи?
Вы пытаетесь создать хранимую процедуру для этого? – Novice