我试图了解我正在尝试编写的查询的逻辑。
这相当于让某人去找一只袜子,但只返回他们找到的东西,而不是袜子本身。
好的,假设预订 54,321 有三个数据对象;123、124 和 125。我运行查询以查看数据对象 125 是否是袜子,如果是,则也返回 123 沙发和 124 地毯。或者,更具体地说,它可以找到的任何数据对象。目前,它只返回它找到的东西,即袜子。
我会解释发生了什么。每个预订可以有任意数量的相关数据对象或记录。我将其中一些记录用作标志,以标记需要特别注意的预订。所以我要找的袜子真的是一面旗帜!但我不想要标志,我想要包含实际数据的其他记录。
我还有其他查询正在工作,我在其中检索预订和所有相关记录,但不是在这种情况下。
我正在使用一个表来存储实际存储的数据类型,与客户端建立关系:
CREATE TABLE IF NOT EXISTS `bookings_clients_options` (
`bookings_client_option_id` mediumint(11) NOT NULL AUTO_INCREMENT,
`creation_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modification_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`client_id` mediumint(11) NOT NULL,
`type` enum('text','textarea','checkbox','radio','select','multiselect') NOT NULL DEFAULT 'text',
`rules` text NOT NULL,
`value` text NOT NULL,
`label` varchar(128) NOT NULL,
`name` varchar(128) NOT NULL,
`id` varchar(128) NOT NULL,
`note` text NOT NULL,
`process` enum('Y','N') NOT NULL DEFAULT 'N',
`mode` enum('public','private','closed') NOT NULL DEFAULT 'public',
PRIMARY KEY (`bookings_client_option_id`),
KEY `index` (`client_id`)
);
我正在为实际数据本身使用表格,与预订建立关系:
CREATE TABLE IF NOT EXISTS `bookings_clients_options_data` (
`bookings_client_option_data_id` mediumint(11) NOT NULL AUTO_INCREMENT,
`creation_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modification_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`bookings_client_option_id` mediumint(11) NOT NULL,
`booking_attendee_id` mediumint(11) NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (`bookings_client_option_data_id`),
KEY `index` (`bookings_client_option_id`,`booking_attendee_id`)
);
希望这是有道理的。
任何想法在伪代码或实际代码中可能是什么样的查询?