У меня есть 2 базы данных. Один из них - properties
, а другой - dates
. В dates
Я связал land_id и дату (в формате YYYYMMDD), что означает, что дата не доступно.MySQL Query, Date Range From «Черный список»
Мне нужно сформулировать запрос, который пользователь может указать дату начала и окончания, а затем выбрать свойство, для которого доступны даты (не в базе данных date
). Как авиакомпании и гостиничные сайты делают такую логику? Я думал о том, чтобы выбрать диапазон дат и собирать все дни между ними и делать запрос, когда даты не совпадают и упорядочиваются по количеству результатов, но я вижу, как это может легко превратиться в интенсивный запрос.
CREATE TABLE IF NOT EXISTS `dates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`land_id` int(11) NOT NULL,
`date` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=44 ;
--
-- Dumping data for table `dates`
--
INSERT INTO `dates` (`id`, `land_id`, `date`) VALUES
(43, 1, '20100526'),
(39, 1, '20100522'),
(40, 1, '20100523'),
(41, 1, '20100521'),
(42, 1, '20100525');
даты хранения в типах данных, специально предназначенных для дат: 'date' – zerkms
zerkms, спасибо за ответ, но это не касается логики, требуемой для того, чтобы вытащить правильные свойства? :) – erbaker
извините за редактирование моего ответа так часто , я думаю, теперь все должно быть хорошо ... – Simon