作成しようとしているクエリのロジックを理解しようとしています。
これは、誰かに靴下を探しに行くように頼むのと同じですが、靴下自体ではなく、見つけたものだけを返します。
さて、予約 54,321 には 3 つのデータ オブジェクトがあるとしましょう。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`)
);
うまくいけば、それは理にかなっています。
疑似コードまたは実際のコードで、どのような種類のクエリが表示されるかについてのアイデアはありますか?