Попробуйте использовать 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;