データベース内で連続しており、同じ user_id と status_id を持つすべてのイベントを検索する MYSQL クエリが必要です。ループを回避しながら連続するイベントを見つけるにはどうすればよいですか?
私が抱えている問題は、時間の間の休憩を確認する方法がわからないことです。したがって、誰かが午前 10 時から午前 10 時 30 分まで対応可能な場合、システムが午前 10 時から午後 12 時 30 分までとだけ言わないようにする方法は、午前 11 時から午後 12 時 30 分までです。
PHP と Javascript を使用してカレンダーを作成していますが、多数の異なるクエリに使用できる単一のテーブル ビューが必要でした。
ご不明な点がございましたら、お知らせください。
CREATE TABLE `events` (
`event_id` int(11) NOT NULL auto_increment COMMENT 'ID',
`user_id` int(11) NOT NULL,
`date` date NOT NULL,
`time` time NOT NULL,
`status_id` int(11) default NULL,
PRIMARY KEY (`event_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1568 ;
INSERT INTO `events` VALUES(1, 101, '2013-08-14', '23:00:00', 2);
INSERT INTO `events` VALUES(2, 101, '2013-08-14', '23:15:00', 2);
INSERT INTO `events` VALUES(3, 101, '2013-08-14', '23:30:00', 2);
INSERT INTO `events` VALUES(4, 101, '2013-08-14', '23:45:00', 2);
INSERT INTO `events` VALUES(5, 101, '2013-08-15', '00:00:00', 2);
INSERT INTO `events` VALUES(6, 101, '2013-08-15', '00:15:00', 1);
INSERT INTO `events` VALUES(7, 500, '2013-08-14', '23:45:00', 1);
INSERT INTO `events` VALUES(8, 500, '2013-08-15', '00:00:00', 1);
INSERT INTO `events` VALUES(9, 500, '2013-08-15', '00:15:00', 2);
INSERT INTO `events` VALUES(10, 500, '2013-08-15', '00:30:00', 2);
INSERT INTO `events` VALUES(11, 500, '2013-08-15', '00:45:00', 1);
INSERT INTO `events` VALUES(12, 101, '2013-08-15', '01:15:00', 1);
INSERT INTO `events` VALUES(13, 101, '2013-08-15', '01:30:00', 1);
INSERT INTO `events` VALUES(14, 101, '2013-08-15', '01:45:00', 1);
INSERT INTO `events` VALUES(15, 101, '2013-08-15', '02:00:00', 1);
望ましい出力
row |user_id | date_start | time_start | date_end | time_end | status_id | duration
1 |101 |'2013-08-14'| '23:00:00' |'2013-08-15'|'00:15:00'| 2 | 5
2 |101 |'2013-08-15'| '00:15:00' |'2013-08-15'|'00:30:00'| 1 | 1
3 |500 |'2013-08-14'| '23:45:00' |'2013-08-15'|'00:15:00'| 1 | 2
4 |500 |'2013-08-15'| '00:15:00' |'2013-08-15'|'00:45:00'| 2 | 2
5 |500 |'2013-08-15'| '00:45:00' |'2013-08-15'|'01:00:00'| 2 | 1
6 |101 |'2013-08-15'| '01:15:00' |'2013-08-15'|'02:15:00'| 1 | 4