Testa att använda MAX
med en 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;
Mer information om GROUP BY
Gruppera efter-satsen används för att dela upp de markerade posterna i grupper baserat på unika kombinationer av gruppen efter kolumner. Detta tillåter oss sedan att använda aggregerade funktioner (t.ex. MAX, MIN, SUM, AVG, ...) som kommer att tillämpas på varje grupp av poster i tur och ordning. Databasen returnerar en enda resultatpost för varje gruppering.
Till exempel, om vi har en uppsättning poster som representerar temperaturer över tid och plats i en tabell som denna:
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
...
Om vi sedan vill hitta den maximala temperaturen efter plats, måste vi dela upp temperaturposterna i grupperingar, där varje post i en viss grupp har samma plats. Vi vill sedan hitta maxtemperaturen för varje grupp. Frågan för att göra detta skulle vara följande:
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;