sql 查询多个时间片段的数据

现在有两张表

一张用于存储时间片段的duration表

CREATE TABLE `duration`  (
  `id` int(0) NOT NULL,
  `start_time` datetime(0) NULL,
  `end_time` datetime(0) NULL,
);

一张用于存储数据的data表,有数据的插入时间

CREATE TABLE `data`  (
  `id` int(0) NOT NULL,
  `record_time` datetime(0) NULL,
);

这俩表id都是可以重复的
现在从duration表中查出多条数据,也就是获取到了多个时间片段,然后再data表中查出对应record_time在之前查出的多个时间片段之间的数据。
大佬们这个咋弄?

阅读 3.3k
1 个回答
insert into duration (id, start_time, end_time) 
values(1, '2018-1-1', '2018-1-10'),
(2, '2018-2-1', '2018-2-10'),
(3, '2018-3-1', '2018-3-10');


insert into data (id, record_time)
values(1, '2018-1-2'),
(2, '2018-2-2'),
(3, '2018-3-2'),
(4, '2018-4-2'),
(5, '2018-1-12');


select data.* from data, duration where record_time between start_time and end_time ;

结果会是:

'1', '2018-01-02 00:00:00'
'2', '2018-02-02 00:00:00'
'3', '2018-03-02 00:00:00'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题