Опитайте да използвате MAX
с 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;
Допълнителна информация за GROUP BY
Клаузата group by се използва за разделяне на избраните записи в групи въз основа на уникални комбинации от група по колони. Това след това ни позволява да използваме агрегатни функции (напр. MAX, MIN, SUM, AVG, ...), които ще бъдат приложени към всяка група записи на свой ред. Базата данни ще върне един запис на резултата за всяко групиране.
Например, ако имаме набор от записи, представящи температурите във времето и местоположението в таблица като тази:
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
...
След това, ако искаме да намерим максималната температура по местоположение, тогава трябва да разделим температурните записи на групи, където всеки запис в определена група има същото местоположение. След това искаме да намерим максималната температура на всяка група. Заявката за това ще бъде както следва:
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;