0

すべてのイベントとその古いバージョンを保持するイベント「イベント」を含むテーブルがあります。私はこれらの列を持っています:

  • 「id」プライマリ、
  • ここで「origin_id」は元のイベントのIDを保持し、
  • 「date_added」DATETIME 列。

最初にイベントを追加すると、その「origin_id」がその「id」値を取得します。このイベントを変更すると、最初のイベントと同じ「origin_id」、新しい自動インクリメントされた「id」、および新しい「date_added」で新しいイベントが作成されます。

テーブルから現在のすべてのイベントのリストを取得する方法はありますか?

したがって、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 に答える