-- sql执行的顺序:from--where--group by/having-聚合-select-order by

将字段改为* group by 之后,日期不是最大日期 alt

所以用子查询,先查询出对应ID的最大日期

select u.name,c.name,l2.m_date from login as l
   left join user as u
on l.user_id = u.id
  left join client as c
on l.client_id = c.id
left join (SELECT user_id, MAX(date) as m_date FROM login  GROUP BY user_id) as l2
on l2.user_id=u.id
and l2.m_date=l.date
where m_date is not null-- 因为用的左连接,所以需要去掉空值,内连接在连接过程中就去掉了,可以没有这个
order by u.name;