1

我有 2 张桌子:

  1. 事件系列
  2. 事件

每个“事件”都通过event_serie_id外键和date_time列与“ event_serie ”有关系,这显然是事件开始的时间(YYYY-MM-DD HH:MM:SS 格式)。

现在对我来说有趣且非常困难的部分 - 我如何选择包含过去事件或根本没有事件的“ event_serie ” ?换句话说,我需要找到没有今天和未来或 0 个事件的“event_serie”。

我会欣赏mysql和doctrine2的例子(如果实际上可以使用DQL)。

有什么想法吗?

4

2 回答 2

2
SELECT * 
  FROM my_table x
  LEFT
  JOIN my_other_table y 
    ON y.id = x.id
   AND y.date >= NOW()
 WHERE y.id IS NULL;

?

于 2013-01-21T10:55:15.330 回答
0
SELECT  a.*, b.*, c.latestDate
FROM
        event a
        LEFT JOIN event_serie b
            ON a.event_serie_id = b.event_serie_id
        LEFT JOIN
        (
            SELECT  event_serie_id, MAX(date_time) latestDate
            FROM    event_serie
            GROUP   BY event_serie_id
        ) c ON a.event_serie_id = c.event_serie_id
WHERE   b.event_serie_id IS NULL OR
        b.date_time < c.latestDate
于 2013-01-21T10:52:32.440 回答