MySQL为JOINed表中的每一行提供结果[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我一直在尝试使用JOIN执行查询以提高性能。目前,将执行一个查询以检索所有记录,然后对于每个记录执行另一个查询以获取完成的特定步骤。

我有两个表,看起来像这样:

用户:

id - name - email
------------------
1 - alex - [email protected]

脚步:

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)功能?

mysql join max
1个回答
1
投票

你是对的

Where steps.id IN (select 
MAX(id) from 
steps group by user userid)

假设您的MAX(id)步骤始终是最大的日期。

© www.soinside.com 2019 - 2024. All rights reserved.