netcon Geschrieben 16. Juli 2010 Teilen Geschrieben 16. Juli 2010 Hallo Zusammen Ich kenne mich in SQL nur mit den Basics aus und stehe nun bei einem Problem an. Ich möchte eine Abfrage aus einer MySQL DB machen, bei der nur jeweils die Zeilen mit der höchsten Versions-Nummer ausgegeben werden, Man hat z.B. folgende Tabelle: ________________________ | id | Version | Text | ===================== | 1 | 1 | row1 | | 1 | 2 | row2 | | 2 | 1 | row3 | --------------------------- In meiner Ausgabe will ich nun nur die Datensätze mit der höchsten Version-Nummer haben. Also z.B: | 1 | 2 | row2 | | 2 | 1 | row3 | Wenn ich nun folgende Abfgrage verwende: SELECT id, max(version), text FROM `test` Group by id bekomme ich folgendes Ergebnis. | 1 | 2 | row1 | | 2 | 1 | row3 | Ich bekomme also nur die grösste Version-Nummer für die jeweilige ID zurück, aber nicht die ganze Zeile, die zu der ID gehört. Die Spalte Text gehört immer noch zum ersten Datensatz. Müsste man hier die Abfrage mit einer zweiten Select Anweisung in einer Where-Abfrage machen oder etwas in der Art? Vielen Dank für eure Hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
streffin Geschrieben 19. Juli 2010 Teilen Geschrieben 19. Juli 2010 Wenn ich nun folgende Abfgrage verwende: SELECT id, max(version), text FROM `test` Group by id Was du brauchst ist nicht die max(version) im select, sondern als filter in der WHERE oder von mir aus auch HAVING klausel. DECLARE @test TABLE(pk int, id INT, vers INT, txt VARCHAR(255)) INSERT INTO @test Values (1,1,1,'eins'), (2,1,2,'zwei'), (3,2,1,'drei') SELECT * FROM @test t1 WHERE t1.pk = (SELECT top 1 pk FROM @test t2 WHERE t2.id = t1.id ORDER BY id DESC ) war jetzt in mssql auf die schnelle reingehackt, kann mir allerdings nicht vorstellen, dass mysql das nicht frisst. (von der table variablen mal abgesehen, das is ja aber nich das zentrale) pk steht übrigens für primary Key, ich hoff mal seeehr stark, dass du einen in der Tabelle hast. Gruß Sven Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
netcon Geschrieben 19. Juli 2010 Autor Teilen Geschrieben 19. Juli 2010 Vielen Dank für deine Antwort. Ich habe natürlich Primary Keys in der Tabelle (id und version zusammen), hab ich vergessen zu schreiben...) Gruss netcon Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.