yo,
wichtig ist es immer mit anzugeben, welches dbms und welche version du benutzt. ich vermute mal, du benutzt mysql und besonders bei der GROUP BY funktionalität geht mysql einen eigenen, in meinen augen dummen, weg. aber das ist eine andere geschichte.
Da das Datum (c.timestamp) ja 4 mal vorkommt, wollte ich das immer das letzte (aktuellste) angezeigt wird.
das eine kunde mehrmals mit angezeigt wird, liegt daran, dass zwischen den beiden tabellen eine 1:n beziehung existiert, sprich eine kunde kann mehrere createdbackups datensätze haben.
und die frage ist weniger, wie ich das technisch mit dem GROUP BY umsetzte, dass jeder kunde nur noch einmal erscheint, sondern vielmehr welche informationen du ausgeben willst. reicht mir es, den kunden anzuzeigen mit nur dem aktuellesten datumswert anzuzeigen oder anders gefragt, warum erst den join bilden, wenn ich von den vielen anderen informationen aus der tabelle createdbackups nur eines der mehreren timesstampwerte haben will.
wie auch immer, hier zwei von mehreren lösungen...
SELECT k.name, k.backupDirectory, MAX(c.timestamp)
FROM kunden k
INNER JOIN createdbackups c ON k.id = c.customerID
GROUP BY k.name, k.backupDirectory
ORDER BY 3 DESC
;
SELECT k.name, k.backupDirectory,
(SELECT (MAX(c.timestamp)
FROM createdbackups c
WHERE k.id = c.customerID
) AS Maxwert
FROM kunden k
ORDER BY 3 DESC
;
Ilja