从事件表中选择事件ID,其中事件开始日期和事件结束日期相同

时间:2017-12-21 03:17:54

标签: mysql

我有一张Event表。

属性是:  event_idevent_namestart_dateend_date

我想知道start_dateend_date相同的所有ID。

如何在mysql中实现这一目标?

1 个答案:

答案 0 :(得分:1)

如果要查找共享相同开始日期和结束日期的所有事件,则必须自己加入表格。

SELECT
  e1.event_id,
  e2.event_id
FROM
  event e1 JOIN event e2 ON (e1.event_id < e2.event_id AND 
                             e1.start_date = e2.start_date AND 
                             e1.end_date = e2.end_date)

如果两个不同事件的start_date和end_date相同,则会自动加入事件表。条件e1.event_id < e2.event_id是为了防止同一事件与自身连接并且报告两对匹配事件(例如[event1,event22]和[event22,event1])