这个问题在这里已经有答案了:
sql仅选择列上具有最大值的行[重复](27个答案)
两年前关门了。
我一直在尝试使用连接执行查询以提高性能。当前,将执行一个查询来检索所有记录,然后对每个记录执行另一个查询来获取完成的特定步骤。
我有两张table,看起来像这样:
用户:
id - name - email
------------------
1 - alex - a@b.com
步骤:
id - userId - step - date
-------------------------------
1 - 1 - 1 - 2018/01/01
2 - 1 - 2 - 2018/02/02
3 - 1 - 3 - 2018/03/03
现在,我用来抓取所有用户及其相应步骤的查询是:
SELECT u.id, u.name, u.email, s.step, s.date
FROM users u
LEFT JOIN steps s ON s.userId = u.id
但这会回来:
id - name - step - date
-------------------------------
1 - alex - 1 - 2018/01/01
2 - alex - 2 - 2018/02/02
3 - alex - 3 - 2018/03/03
我只对最后一个结果感兴趣,我认为我应该使用子查询,也许是某种类型的?以及max(s.date)函数?
1条答案
按热度按时间hujrc8aj1#
你说得对
这假设你的最大(id)步长永远是最长的日期。