echo $begrüßung;
SELECT k.id, k.name, k.domain, UNIX_TIMESTAMP(MAX(c.timestamp)) AS 'timestamp', c.error WHERE c.timestamp=MAX(c.timestamp) FROM kunden k INNER JOIN createdbackups c ON k.id = c.customerID GROUP BY k.id ORDER BY 1 ASC
Leider funktioniert es gar nicht. Es kommt in MySQL immer diese Fehlermeldung:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE c.timestamp = MAX( c.timestamp ) FROM kunden k INNER JOIN createdbackups c' at line 1
Du musst die Reihenfolge der Klauseln beachten. Wenn du das getan hast bekommst du einen weiteren Fehler, weil Aggregatfunktionen nicht in eine WHERE-Klausel gehören. Sie können unter HAVING platziert werden. Und dann bekommst du nicht c.error von MAX(c.timestamp) sondern ein beliebiges. Alle anderen DBMS lassen bei Verwendung von GROUP By nur die Spalten im SELECT zu, über die auch gruppiert wurde. Hinzu kommen Aggregatfunktionen über die nicht direkt angegebenene Spalten. MySQL lässt auch nicht gruppierte Spalten zu, warnt aber im Handbuch vor unvorhersehbaren Ergebnissen. Den Maximalwert in einer Unterabfrage zu ermitteln sollte hier die Lösung sein. Vielleicht hilft auch schon ein HAVING MAX(c.timestamp) = c.timestamp.
echo "$verabschiedung $name";