gpt4 book ai didi

组中的MySQL重叠日期

转载 作者:行者123 更新时间:2023-11-30 22:45:29 25 4
gpt4 key购买 nike

抱歉,如果这个问题很基础,我正在学习 MySQL。

假设我有一张包含姓名和给定日期的表格:

+----+-----------+-----------+
|Name|StartDate |EndDate |
+----+-----------+-----------+
|A |2013-08-29 |2014-12-29 |
|A |2013-08-29 |2013-09-31 |
|B |2015-01-02 |2015-03-20 |
|B |2013-08-20 |2013-08-30 |
+----+-----------+-----------+

我想找到具有冲突(重叠)日期的元素(名称)。在这里,A 有冲突的日期,B 没有,代码应该返回 A。A 和 B 之间的重叠无关紧要。谢谢。

最佳答案

你可以这样做

select distinct name
from onetable t
where exists (select 1
from onetable t2
where t2.name = t.name and
t2.startdate < t.enddate and
t2.enddate > t.startdate
);

答案与上一个答案类似,只是在where 子句中添加了name 比较。

此查询所需的索引位于 table(name, startdate, enddate) 上。

关于组中的MySQL重叠日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29738330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com