加入儿童约会之间的父日期

时间:2015-01-29 12:57:32

标签: mysql

我正在努力构建一个查询,该查询会按ID从表中获取一些行,然后从同一个表中连接start_dateend_date在父start_date之间的行。考虑像

这样的表格

事件

| id | event_type_id | start_date | end_date |
| 1 | 1 | 10 | 100 |
| 2 | 2 | 5 | 20 |
| 3 | 2 | 8 | 50 |

event_type_id = 1的事件与正常事件类似,而= 2的事件是周期事件。我想构建查询以便我获得所有正常事件,但同时start_dateend_date处于正常事件start_date之间的句点事件。因此,考虑上面的示例,我希望获得id为1的事件,并将event_type_id为2的事件与start_dateend_date之间的事件加在10之间。请注意即使只有1 event_type_id = 1的记录会有更多的记录,我想在一个查询中获取所有这些记录。我知道单个记录很容易做到,但是我想像整棵树那样取出,所以我不会以n + 1结束。它是否可能或者我应该考虑不同的方法?

1 个答案:

答案 0 :(得分:0)

SELECT
  e1.*,
  e2.*
FROM
  events e1 LEFT JOIN events e2
ON
  e1.start_date BETWEEN e2.start_date AND e2.end_date
AND
  e2.event_type_id=2
WHERE
  e1.event_type_id=1;