【发布时间】:2012-05-16 03:09:01
【问题描述】:
我正在尝试制作一个简单的预订系统。我有一个名为reservation 的表,它保存了预订时间,以及预订它的客户的 ID(请参阅下面的架构)。我还有另一张桌子room,这张桌子是针对房间类型的,所以每种类型的房间在这张桌子上都有一个关于它的大小和价格的条目。还有另一张桌子rooms,用于实际输入每个房间。在我尝试进行的查询中,我想选择一个房间,它是特定类型的,并且在给定的时间片内可用。像这样的东西;
Select number from rooms where type = 4 and available between $start-date and $end-date;
我不知道如何在部分查询之间编写可用的。我的架构的相关部分如下;
CREATE TABLE IF NOT EXISTS `reservation` (
`rid` int(11) NOT NULL AUTO_INCREMENT, /* reservation id */
`number` int(11) NOT NULL, /* number of the room for this reservation */
`cid` int(11) NOT NULL, /* customer id */
`begin` date NOT NULL,
`end` date NOT NULL,
PRIMARY KEY (`rid`),
);
CREATE TABLE IF NOT EXISTS `room` (
`rid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`size` tinyint(3) unsigned NOT NULL,
`price` float NOT NULL,
PRIMARY KEY (`rid`)
);
CREATE TABLE IF NOT EXISTS `rooms` (
`number` smallint(5) unsigned NOT NULL,
`type` int(11) NOT NULL,
`available` tinyint(1) NOT NULL,
`cid` int(11) DEFAULT NULL,
PRIMARY KEY (`number`),
);
【问题讨论】:
-
你应该加入
rooms和reservation并查询你的开始日期和结束日期之间的预订数量。
标签: mysql select join temp-tables