dR.LoL: MySQL - Sortierungsproblem

Hallo,
Ich hab grad ARGH Probleme mit meinem Kopf (Schwester wurde gestern 20! Sagt wohl alles.)
Und ich bring es einfach nicht hin, folgendes SQL Query...

SELECT tblInstallation.*, tblServer.*, tblServer.Id AS ServerId, tblServer.Name AS ServerName, tblPackage.*, tblPackage.Name AS PackageName FROM SIS.tblInstallation INNER JOIN (SIS.tblServer, SIS.tblPackage) ON (tblServer.Id = tblInstallation.Fk_ServerId AND tblPackage.Id = tblInstallation.Fk_BasePackageId) GROUP BY tblInstallation.Fk_BasePackageId ORDER BY tblServer.Name ASC, tblPackage.Name ASC, tblPackage.Version ASC

..so umzuschreiben, dass es Alle Installationen sortiert ausgibt (wie oben), ABER nur den laut AssignedDate neusten Eintrag Pro BasePackage ausgibt.

Das obige gibt eben nicht das neuste zurück, sondern nach Name das erste. Jetzt sollte's doch irgendwie gehn (Mein Kopf ist noch zu unfit) dass diese zwar so sortiert werden wie oben, allerdings nur den neusten nach Datum rausspuckt.

Danke euch für eure Unterstützung.
Gruss vom LoL, der dagegen ist, sich am MO Abend zu besauffen ^^

  1. Hallo LoL,

    Und ich bring es einfach nicht hin, folgendes SQL Query...

    folgendes SQL-Statement, das wohl von allen DBMS ausser MySQL als syntaktisch falsch zurückgewiesen wird. Ausführungen dazu findest Du vielfach im Archiv, ich verweise Dich hier auf eines meiner Postings mit weiterführenden Links.

    SELECT tblInstallation.*, tblServer.*, tblServer.Id AS ServerId, tblServer.Name AS ServerName, tblPackage.*, tblPackage.Name AS PackageName FROM SIS.tblInstallation INNER JOIN (SIS.tblServer, SIS.tblPackage) ON (tblServer.Id = tblInstallation.Fk_ServerId AND tblPackage.Id = tblInstallation.Fk_BasePackageId) GROUP BY tblInstallation.Fk_BasePackageId ORDER BY tblServer.Name ASC, tblPackage.Name ASC, tblPackage.Version ASC

    ..so umzuschreiben, dass es Alle Installationen sortiert ausgibt (wie oben), ABER nur den laut AssignedDate neusten Eintrag Pro BasePackage ausgibt.

    Das sollte prinzipiell gehen, in folgendem Thread wird die gleiche Problematik behandelt. Lies Dir Iljas Posting durch, passe den Vorschlag auf Dein Problem an. Beachte, dass Deine MySQL-Version >= 4.1 sein muss, wie Du dem Thread entnehmen kannst.

    Das obige gibt eben nicht das neuste zurück, sondern nach Name das erste.

    Nö, laut MySQL-Doku sind die Daten in den meisten Deiner Spalten nicht vorhersagbar, http://dev.mysql.com/doc/mysql/en/group-by-hidden-fields.html, ich zitiere:

    <zitat>
    Do not use this feature if the columns you omit from the GROUP BY part are not unique in the group! You get unpredictable results.
    </zitat>

    Also: Unvorhersehbare Resultate ist doch eindeutig genug. Willst Du Dich auf "unvorhersehbare Resultate" verlassen? Wirklich? Das ist bei Deinem Statement der Fall!

    Gruss vom LoL, der dagegen ist, sich am MO Abend zu besauffen ^^

    Du hättest Dich stattdessen genussvoll betrinken können. Vielleicht ginge es Dir dann jetzt besser. *g*

    Freundliche Grüße

    Vinzenz

    1. Japp, Danke!
      Nun ja, Genussvoll ist auch nur der Anfang :]><
      Gruss