Nur höchste "Versionen" abfragen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Nur höchste "Versionen" abfragen

    Hallo zusammen,

    meine Tabelle sieht wie folgt aus:

    |Feld|Typ|Null|Standard
    |------
    |//**id**//|int(11)|Nein|
    |number|int(11)|Nein|
    |version|int(11)|Nein|
    |title|text|Nein|

    Es werden darin Artikel mit einer bestimmten Nummer und verschiedenen Versionen gespeichert.

    Nun möchte ich alle "neusten" Versionen eines Artikels mittels SELECT abfragen, d. h. zu jeder Nummer die "höchste Version".
    Hat mir da jemand nen Tipp?

    Gruß
    Alex

  • #2
    Hallo,

    das geht mit einem negativen Self Left Join, siehe MySQL :: MySQL 5.0 Reference Manual :: 3.6.4 The Rows Holding the Group-wise Maximum of a Certain Column, das Beispiel ganz unten.

    Edit: Kommando zurück, wenn ich es recht verstehe, reicht in deinem Fall auch ein
    Code:
    select max(version)
    from TABELLE
    group by number

    Gruß,

    Amica
    Zuletzt geändert von AmicaNoctis; 11.02.2010, 17:19.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hi Amica,

      danke für Deine Antwort.
      Ich wollte schon die kompletten Daten. So geht's aber:

      SELECT * FROM `articles` s1 JOIN (SELECT number, MAX(version) AS version FROM `articles` GROUP BY number) AS s2 ON s1.number=s2.number AND s1.version=s2.version

      Wenn's jemand kürzer weiß, bin ich für weitere Vorschläge offen ;-)


      Gruß
      Alex

      Kommentar


      • #4
        OK, wenn du alles brauchst funktioniert es nur so, wie in dem Link beschrieben, also nicht mit max und group by. Deine Version ist unkorreliert, also in Ordnung, obwohl ich trotzdem die letzte Variante mit dem negativen Left Join bevorzuge.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar

        Lädt...
        X