获取群组 mysql 中的最新日期

Get latest date in group mysql

我希望得到最后一次为每个工作人员举行会议的时间,但我的布局并不快

Meetings
id staff    date       notes <br>
1    46  2016-01-01    Test notes <br>
2    46  2016-02-28    test note<br>
3    56  2017-01-05    
4    56  2017-02-15

staff
id  first_name   last_name<br>
46  test 1        user1 <br>
56  test 2        user2

这是我的查询,但不会告诉我他们开会的最后日期

SELECT
staff.first_name,
staff.last_name,
meetings.`date`,
meetings.notes,
meetings.`type`,
meetings.id
FROM
meetings
Inner Join staff ON meetings.staff = staff.id
GROUP BY
meetings.staff

您可以将 GROUP BY 子句与 MAX 函数一起使用以获得所需的结果,例如:

SELECT s.id, s.first_name, s.last_name, MAX(m.date)
FROM staff s LEFT JOIN meetings m ON s.id = m.staff
GROUP BY s.id, s.first_name, s.last_name
ORDER BY s.id;

更新 如果您不想包括还没有参加过任何会议的工作人员,那么您可以使用 inner join,例如:

SELECT s.id, s.first_name, s.last_name, MAX(m.date)
FROM staff s JOIN meetings m ON s.id = m.staff
GROUP BY s.id, s.first_name, s.last_name
ORDER BY s.id;

感谢 Darshan Mehta 完成了工作

SELECT s.id, s.first_name, s.last_name, MAX(m.date)
FROM staff s JOIN meetings m ON s.id = m.staff
分组依据 s.id、s.first_name、s.last_name
按 s.id;

排序