我想加入两个表,即职员和工作人员考试时间表。员工可以参加N次考试。我的结果应该是工作人员编号,工作人员姓名,上次完成的考试的结束时间。SQL查询与不工作的订单
我的表结构如下
职员表
staff_id staff_full_name staff_status
500 Sakthi active
550 Siraj active
600 Shihab K H active
620 John David active
670 Javed Akthar active
examtime表
examtime_id examtime_staffid examtime_endtime
100 500 2014-10-10
101 600 2016-05-01
102 670 2016-06-10
103 670 2014-04-01
104 670 2016-06-13
105 670 2016-06-11
结果集的SQL查询低于
SELECT S.staff_id, S.staff_full_name, ET.examtime_endtime
FROM staffs S LEFT JOIN examtime ET ON ET.examtime_staffid = S.staff_id
WHERE 1 AND S.staff_status = 'active' GROUP BY S.staff_full_name ORDER BY S.staff_full_name ASC , ET.examtime_endtime DESC
但我GE设置结果集如下。无论考试结束时间如何,它都会获取考试时间表的第一条记录。见下面结果集(Javed Akthar最新的考试日期是2016-06-13,但它取材于2016-06-10)。
500 Sakthi 2014-10-10
600 Shihab KH 2016-05-01
670 Javed Akthar 2016-06-10
你'集团BY'造成问题,“阅读我的想法“实际上它[不这样做](https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html):”... MySQL扩展到标准SQL ...在这种情况下,服务器可以自由选择每个组中的任何值,因此除非它们相同,所选择的值是不确定的,这可能不是你想要的。“ –