Mysql 如何获取每个用户的最新记录?
我有两个表,一个是登录,第二个是公司的详细信息。 以下是该表的结构。我试图在线添加SQL查询和表,但得到了错误帮助:near ENGINE:syntax error。所以我在下面加了它 登录 公司 我的问题是,我必须显示每个登录用户的最新记录。 我的预期产出是Mysql 如何获取每个用户的最新记录?,mysql,join,Mysql,Join,我有两个表,一个是登录,第二个是公司的详细信息。 以下是该表的结构。我试图在线添加SQL查询和表,但得到了错误帮助:near ENGINE:syntax error。所以我在下面加了它 登录 公司 我的问题是,我必须显示每个登录用户的最新记录。 我的预期产出是 company_id | company_name | content | size | date_of_added | login_id | username 4 | qwedrr | some
company_id | company_name | content | size | date_of_added | login_id | username
4 | qwedrr | some content | 16 | 2021-05-05 | 1 | abc
6 | uwewe | some content | 09 | 2021-05-05 | 2 | xyz
5 | qwesd | some content | 20 | 2021-05-05 | 3 | oiu
and so on
我尝试了下面的查询,但是我得到了所有的记录
select l.*, c.*
from
login l
left join company c
on l.login_id = c.login_id
and c.date_of_created = (
select max(date_of_created)
from company c1
where c1.company_id = c.company_id
)
假设最新的id最大: 选择c1.*,login.username 来自c1公司 加入选择MAXc2.company\u id company\u id,c2.login\u id 来自c2连 按c2分组。登录id c3使用公司id、登录id 使用登录id加入登录
我必须显示每个登录用户的最后记录。最后是什么?是什么顺序提供的?@Akina,输入错误,我的意思是我在公司表中总共有6条记录,使用登录id我必须显示最新的记录。请再次检查我的预期输出-最新情况如何?通过表达式指定顺序,以便区分这一点。最常见的条件是日期,但所有添加值的日期都是相等的,而表达式必须为最新术语提供唯一性才能有意义。@Akina,我有一个日期和时间。您可以添加一个自动递增列,用于标识行并提供顺序吗?或者,也可以在date_of_added字段中添加一个时间组件,例如yyyy-mm-dd hh:mm:ss。否则就像@Akina所说的,不可能知道最新的条目是什么ambiguous@NarenVerma很抱歉编辑。
company_id | company_name | content | size | date_of_added | login_id | username
4 | qwedrr | some content | 16 | 2021-05-05 | 1 | abc
6 | uwewe | some content | 09 | 2021-05-05 | 2 | xyz
5 | qwesd | some content | 20 | 2021-05-05 | 3 | oiu
and so on
select l.*, c.*
from
login l
left join company c
on l.login_id = c.login_id
and c.date_of_created = (
select max(date_of_created)
from company c1
where c1.company_id = c.company_id
)