SQL查询使用两个表返回mysql中每个用户的最新条目

时间:2016-07-07 14:50:40

标签: mysql sql

这不是重复......我正在使用两张桌子。 “答案”用户链接到仅使用一个表。我需要使用RELATED表返回最新的条目。我还没有找到解决方案。

我正在研究一个时钟。我的数据库中有两个名为employees and punches的表.. punches表有一个名为'emp_id'的字段,它与employees表中的'id'字段相关。我正在尝试找出一个SQL查询,它将返回每个员工的最新条目(他们的当前状态,无论他们当前是IN,OUT,BREAK等)。

我找到的答案(并在评论中引用)并没有从两个表中提取信息,只有一个。

到目前为止,我有以下内容,但这只会给每位员工带来第一拳。我试图返回最新的一拳。

    SELECT CONCAT(employees.first, ' ', 'employees.last) AS name, punches.id, punches.date, TIME_FORMAT(punches.tistamp, '%H:%i') AS time
FROM employees, punches
WHERE punches.emp_id=employees.id
GROUP BY emp_id
ORDER BY emp_id DESC

punches表有一个'id'字段,自动递增,所以基本上我正在为每个员工寻找max punches.id。

1 个答案:

答案 0 :(得分:0)

我发现此代码有效..

SELECT p.emp_id, CONCAT(e.last, ', ', e.first) AS name, p.status, DATE_FORMAT(p.tistamp, '%d/%m/%Y') AS date, TIME_FORMAT(p.tistamp, '%H:%i') AS time FROM punches p, employees e WHERE p.emp_id=e.id AND p.id = (SELECT MAX(p.id) FROM punches p WHERE e.id=p.emp_id) ORDER BY e.last ASC