Ilja: Komplexes Select-Statement mit GROUP BY - wie gehts?

Beitrag lesen

moin,

~~~sql

SELECT name, condition, inserted, value

FROM config
  WHERE name = X AND condition = Y
  ORDER BY validation DESC
  LIMIT 1

  
dieser code ist nicht ganz sauber. die LIMIT funktionalität von mysql ist sehr praktisch, verleitet aber all zuoft zu "bequemlichkeitsfehlern". du musst den sonderfall behandeln, wenn es datensätze gibt, mit gleichen werten in den spalten name, condition und validation. dies kann zwar von der fachlichkeit her ausgeschlossen sein, ich würde aber trotzdem immer einen anderen weg gehen, nämlich über eine unterabfrage und der maxfuntion. dann ist man immer auf der sicheren seite.  
  

> Wie kriege ich eine Ergebnisliste, mit allen enthaltenen Optionen und allen Bedingungen in der aktuellsten Version?  
  
und wenn du das von mir oben genannte auch umsetzt, dann ist der schritt nicht mehr weit, dein problem zu lösen, nämlich eine korrelierte unterabfrage mit der max-aggreat-funktion über die inserted spalte.  
  
SELECT t1.name, t1.condition, t1.insterted, t1.value  
FROM config t1  
WHERE t1.inserted =  
 (SELECT (MAX t2.inserted)  
  FROM config t2  
  WHERE t1.name = t2.name  
  AND t1.condition = t2.condition  
 )  
;  
  
Ilja