mysql找出有重叠时间的数据

有表a如下:

mysql找出有重叠时间的数据

id为1,2的两条数据,name都是user1,starttime和endtime是有重叠部分的,
id为3,4的两条数据,name都是user2,starttime和endtime是没有重叠部分的。我该怎么写sql找出来id为1,2的数据呢。就是相同用户,开始和结束时间有重叠的。多谢各位大佬~

CREATE TABLE `test` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',

`starttime` datetime DEFAULT NULL,

`endtime` datetime DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB;

BEGIN;

INSERT INTO `test` VALUES (1, 'user1', '2019-07-01 21:53:16', '2019-07-01 22:53:25');

INSERT INTO `test` VALUES (2, 'user1', '2019-07-01 21:23:47', '2019-07-01 22:01:03');

INSERT INTO `test` VALUES (3, 'user2', '2019-07-02 21:54:32', '2019-07-02 22:54:39');

INSERT INTO `test` VALUES (4, 'user2', '2019-07-03 21:54:58', '2019-07-03 22:55:04');

COMMIT;


回答:

select

a.*

from

test a inner join test b

on a.name=b.name

where

a.id<>b.id

and a.endtime>b.starttime

and a.starttime<b.endtime


回答:

完美 感谢!

以上是 mysql找出有重叠时间的数据 的全部内容, 来源链接: utcz.com/a/165465.html

回到顶部