我需要帮助准备一个mysql查询。
我的数据集如下:
-- Table structure for table `property_guest_type`
CREATE TABLE IF NOT EXISTS `property_guest_type` (
`id` int(10) unsigned NOT NULL,
`property_id` int(10) unsigned NOT NULL,
`singular` varchar(20) NOT NULL,
`plural` varchar(20) NOT NULL,
`min_age` tinyint(3) unsigned NOT NULL DEFAULT '0',
`max_age` tinyint(3) unsigned NOT NULL DEFAULT '0',
`is_active` tinyint(3) unsigned NOT NULL DEFAULT '0',
`date_created` datetime NOT NULL,
`date_modified` datetime NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=614 DEFAULT CHARSET=utf8;
-- Dumping data for table `property_guest_type`
INSERT INTO `property_guest_type` (`id`, `property_id`, `singular`, `plural`, `min_age`, `max_age`, `is_active`, `date_created`, `date_modified`) VALUES
(566, 41, 'Adult', 'Adults', 18, 110, 1, '2018-08-16 10:54:19', '2018-08-16 10:54:19'),
(571, 41, 'Child', 'Children', 3, 17, 1, '2018-08-16 10:55:37', '2018-08-16 10:54:19'),
(574, 41, 'Infant', 'Infants', 0, 2, 1, '2018-08-16 10:56:31', '2018-08-16 10:54:19');
CREATE TABLE IF NOT EXISTS `property_occupancy_rule` (
`id` int(10) unsigned NOT NULL,
`property_id` int(10) unsigned NOT NULL,
`count` tinyint(4) NOT NULL,
`operator` enum('min','max') NOT NULL,
`guest_types` varchar(45) NOT NULL,
`date_created` datetime NOT NULL,
`date_modified` datetime NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=1605 DEFAULT CHARSET=utf8;
--
-- Dumping data for table `property_occupancy_rule`
--
INSERT INTO `property_occupancy_rule` (`id`, `property_id`, `count`, `operator`, `guest_types`, `date_created`, `date_modified`) VALUES
(1456, 41, 1, 'min', '566', '2018-08-16 10:57:06', '2018-08-16 10:57:06'),
(1466, 41, 4, 'max', '566', '2018-08-16 11:05:02', '2018-08-16 10:57:06'),
(1468, 41, 6, 'max', '566+571', '2018-08-16 11:05:30', '2018-08-16 10:57:06'),
(1470, 41, 8, 'max', '566+571+574', '2018-08-16 11:05:49', '2018-08-16 10:57:06'),
(1469, 41, 8, 'max', '566+574', '2018-08-16 11:05:40', '2018-08-16 10:57:06'),
(1467, 41, 5, 'max', '571', '2018-08-16 11:05:16', '2018-08-16 10:57:06'),
(1471, 41, 7, 'max', '571+574', '2018-08-16 11:06:03', '2018-08-16 10:57:06'),
(1465, 41, 2, 'max', '574', '2018-08-16 11:02:56', '2018-08-16 10:57:06');
…这里有一个相同的sql库,还有一个我尝试过的示例连接查询。
: http://sqlfiddle.com/#!9/926f9/5号楼
因此,在我的模式中有两个表存储guest\类型,然后相应地在另一个表中存储相应的占用规则。
例如,我的客人类型为“成人、儿童、婴儿”,它们有一定的最大/最小年龄。
根据入住规则,我们可以说一家酒店/公寓最多可以有2名成人、3名儿童和1名婴儿。
在前端,我们有成人,儿童和婴儿下拉多添加设施,所以我可以添加更多的儿童或成人,我喜欢他们的年龄。
我需要搜索这两个表,根据搜索条件得到属性id。
我已经创建了一个join-bsed查询,它可以很好地查找成人,但是我想合并或创建一个查询,它可以搜索所有成人/儿童和婴儿,并分析显示的属性是否正确。
请告诉我如何在单个mysql查询中实现相同的功能?
暂无答案!
目前还没有任何答案,快来回答吧!