Essayez d'utiliser MAX
avec un 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;
Plus d'informations sur GROUP BY
La clause group by est utilisée pour diviser les enregistrements sélectionnés en groupes en fonction de combinaisons uniques des colonnes group by. Cela nous permet ensuite d'utiliser des fonctions d'agrégation (ex. MAX, MIN, SUM, AVG, ...) qui seront appliquées tour à tour à chaque groupe d'enregistrements. La base de données renverra un seul enregistrement de résultat pour chaque regroupement.
Par exemple, si nous avons un ensemble d'enregistrements représentant les températures au fil du temps et de l'emplacement dans un tableau comme celui-ci :
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
...
Ensuite, si nous voulons trouver la température maximale par emplacement, nous devons diviser les enregistrements de température en groupes, où chaque enregistrement d'un groupe particulier a le même emplacement. On veut ensuite trouver la température maximale de chaque groupe. La requête pour ce faire serait la suivante :
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;