2011-02-07 4 views
0

すべてのイベントとその古いバージョンを保持するイベント "イベント"を持つテーブルがあります。ここで私は、元のイベントのID、 イベントとその古いバージョンを同時に保持するテーブルからイベント履歴を取得

  • "DATE_ADDED" DATETIME列を保つ

    • "ID" の主、
    • "origin_id":私はこれらの列を持っています。

    私が最初にイベントを追加するとき、その "origin_id"は "id"値を取得します。このイベントを変更すると、最初のものと同じ「origin_id」、新しい自動増分「id」、新しい「date_added」というイベントを作成します。

    テーブルからのすべての現在のイベントのリストを取得する方法。開始日である "start"で古いバージョンを注文する必要はありません - DATETIME列?

    私は3つのイベントがあり、それぞれにいくつかのリビジョン/アップデートがある場合、それらのイベントごとに最後のアップデートのみを取得したいと考えています。

  • +0

    私は自分の答えを受け入れるべきではないのですか?他の人が答えるのを待ってから、質問を受け入れるか、または削除しますか? –

    +0

    質問は完全に有効と思われますが、削除する必要はありません。しかし、とにかく、今心配する必要はありません、私はあなたの気晴らしを軽減しています。 :) –

    答えて

    0

    AMM私は自分自身でそれを得たと思います:)これについて

    SELECT * 
    FROM events WHERE id 
    IN (
    SELECT MAX(id) 
    FROM events 
    GROUP BY origin_id 
    ) 
    ORDER BY start ASC 
    
    0

    何?

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

    それは確かに独自のソリューションと同じではありませんので、私はあなたが私はあなたのために動作しない場合は、より良い何もターンアップしない場合は、あなたを受け入れることが自由だと思います。

    +0

    他のデータが "イベント"にありますので、フェッチしたいので、自分の意思決定が私のイベントでもうまくいきます。私の最初の間違いは、 "id"を使用せず、 "date_added"のみを使用していました。 –

    関連する問題