Versuchen Sie es mit MAX
mit einem GROUP BY
.
SELECT u.userName, MAX(c.carPrice)
FROM users u
LEFT JOIN cars c ON u.id = c.belongsToUser
WHERE u.id = 4;
GROUP BY u.userName;
Weitere Informationen zu GROUP BY
Die Gruppieren-nach-Klausel wird verwendet, um die ausgewählten Datensätze basierend auf eindeutigen Kombinationen der Gruppieren-nach-Spalten in Gruppen aufzuteilen. Dies ermöglicht uns dann, Aggregatfunktionen (z. B. MAX, MIN, SUM, AVG, ...) zu verwenden, die der Reihe nach auf jede Gruppe von Datensätzen angewendet werden. Die Datenbank gibt für jede Gruppierung einen einzelnen Ergebnisdatensatz zurück.
Zum Beispiel, wenn wir eine Reihe von Aufzeichnungen haben, die Temperaturen über Zeit und Ort in einer Tabelle wie dieser darstellen:
Location Time Temperature
-------- ---- -----------
London 12:00 10.0
Bristol 12:00 12.0
Glasgow 12:00 5.0
London 13:00 14.0
Bristol 13:00 13.0
Glasgow 13:00 7.0
...
Wenn wir dann die maximale Temperatur nach Ort finden möchten, müssen wir die Temperaturaufzeichnungen in Gruppierungen aufteilen, wobei jeder Datensatz in einer bestimmten Gruppe denselben Ort hat. Wir wollen dann die maximale Temperatur jeder Gruppe finden. Die Abfrage dazu lautet wie folgt:
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;