查找没有重叠日期的条目

时间:2018-02-01 15:27:54

标签: mysql

我有下表:

activity (name, description, dateBegin, dateEnd)

我需要找到彼此不重叠的所有活动(它们的日期不会发生碰撞)。

我有以下条件来查找重叠的活动:

AND (0
    OR (`activity1`.`dateBegin` <= `activity2`.`dateBegin` AND `activity2`.`dateBegin` < `activity1`.`dateEnd`)
    OR (`activity1`.`dateBegin` < `activity2`.`dateEnd` AND `activity2`.`dateEnd` <= `activity1`.`dateEnd`)

    OR (`activity2`.`dateBegin` <= `activity1`.`dateBegin` AND `activity1`.`dateBegin` < `activity2`.`dateEnd`)
    OR (`activity2`.`dateBegin` < `activity1`.`dateEnd` AND `activity1`.`dateEnd` <= `activity2`.`dateEnd`)
)

如何两次加入同一个表并计算匹配而不重复条目? PS:我有另一个名为userActivity的表格,其中有一个activityIduserId列,用于匹配我在查询中LEFT JOIN所需的用户列。

有什么建议吗?

感谢。

0 个答案:

没有答案