查找成人/儿童入住酒店的搜索查询

c3frrgcw  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(186)

我需要帮助准备一个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查询中实现相同的功能?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题