0

我有一个包含所有事件及其旧版本的事件“事件”表。我有这些专栏:

  • “id”主要,
  • “origin_id”这里我保留原始事件的ID,
  • “date_added” DATETIME 列。

当我第一次添加一个事件时,它的“origin_id”得到它的“id”值。当我更改此事件时,我会创建一个与第一个事件具有相同“origin_id”的新事件,当然还有新的自动递增的“id”和新的“date_added”。

如何从表中获取包含所有当前事件的列表,而不是按开始日期“开始”排序的旧版本 - 再次是 DATETIME 列?

因此,如果我有 3 个事件并且每个事件都有多个修订/更新,我只想获得每个事件的最后一次更新。

4

2 回答 2

0

嗯,我想我是自己搞定的:)

SELECT *
FROM events WHERE id  
IN (
SELECT MAX( id )
FROM events
GROUP BY origin_id
)  
ORDER BY start ASC
于 2011-02-07T12:47:11.120 回答
0

那这个呢?

SELECT MAX(id), origin_id, MAX(date_added), start
FROM events
GROUP BY origin_id, start
ORDER BY start ASC

它肯定与您自己的解决方案不同,所以我认为如果我的解决方案不适合您并且没有更好的解决方案,您可以自由接受您的解决方案。

于 2011-02-07T15:55:58.640 回答