尝试使用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;