问下各位老哥,我现在有一个表userinfo,里面有每个人多段的在职期间,如下图:
我现在想要获取到一个期间重复的人员,比如其中一个人员有两条数据,分别是:
第一条:2022-05-15 到 2022-05-25
第二条:2022-05-20 到 2022-05-30
就需要将他的身份证号获取到。 这样的sql该怎么写呢,求解答
没有验证,大概就是自己和自己做连接查询,相同身份证,并且日期区间重叠应该就是你要的数据吧?
select u1.身份证号,u1.id,u2.id
from userinfo u1
join userinfo u2 on u1.身份证号=u2.身份证号 and u1.id<>u2.id
and u1.入职日期 >= u2.入职日期 and u1.入职日期 <= u2.离职日期