私は予約システムを持っており、リストの月間カレンダー ビューを表示したいと考えています。私は次のテーブル構造を持っています(他の多くの列もあります)。
CREATE TABLE `sys_calendar` (
`dt` date NOT NULL,
PRIMARY KEY (`dt`)
);
CREATE TABLE `listings` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
);
CREATE TABLE `bookings` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`listing_id` int(10) unsigned NOT NULL,
`start_date` date NOT NULL,
`end_date` date NOT NULL,
PRIMARY KEY (`id`)
);
sys_calendar
2000-01-01から2040-12-31までのすべての日付を保持します。
dt
------------
2000-01-01
2000-01-02
2000-01-03
....
2040-12-30
2040-12-31
私がやりたいことは、特定のリストの月間カレンダーを表示することです。例えば; listing_id
= 10 の 2013 年 4 月 (2013-04-01 と 2013-04-30 の間)のカレンダーを表に表示したいと思いbookings
ます。
dt | Availability
-------------------------
2013-04-01 | No
2013-04-02 | No
2013-04-03 | Yes
2013-04-04 | Yes
2013-04-05 | Yes
2013-04-06 | Yes
....
2013-04-29 | No
2013-04-30 | Yes
sys_calendar
テーブルに参加する必要があることは知っていますが、そのbookings
方法がわかりません。