ersten und letzten Datensatz

chuvak

Erfahrenes Mitglied
Ich möchte jeweils den ersten und letzten Datensatz meiner Tabelle ausgeben. Dabei orientiere ich mich an deren ID:
Code:
SELECT zeit, min(id) AS kleinste_id FROM tab1 ORDER BY kleinste_id
SELECT zeit, max(id) AS groesste_id FROM tab1 ORDER BY groesste_id
Es wird mir auch die richtige ID ausgegeben, allerdings ist die dazugehörige Zeit nur vom ersten Datensatz.
Was mache ich falsch?
 
Ich möchte jeweils den ersten und letzten Datensatz meiner Tabelle ausgeben. Dabei orientiere ich mich an deren ID:
Code:
SELECT zeit, min(id) AS kleinste_id FROM tab1 ORDER BY kleinste_id
SELECT zeit, max(id) AS groesste_id FROM tab1 ORDER BY groesste_id
Es wird mir auch die richtige ID ausgegeben, allerdings ist die dazugehörige Zeit nur vom ersten Datensatz.
Was mache ich falsch?

Das ist eine MySQL-Spezialität. Andere Datenbanken erwarten einen GROUP BY zeit, bei so einem Konstrukt.

Ein

SQL:
SELECT zeit, id
    FROM tab1 
 WHERE id IN (SELECT MIN(ID) FROM tab1 union SELECT MAX(ID) FROM tab1)

sollte Dir SQL-Konform und performant helfen. Btw, bei dem inneren MIN/MAX brauchts kein GROUP BY, da keine nicht-aggregierten Werte abgefragt werden.

Güße
Gore
 
Zuletzt bearbeitet von einem Moderator:
Zurück