右连接,不需要主表(mysql)
我有一个表,每个id有几行:右连接,不需要主表(mysql),mysql,sql,join,Mysql,Sql,Join,我有一个表,每个id有几行: Emp_id date_checkin hours 01 2014-05-14 6 01 2014-05-13 6 02 etc. 我想制作一份最后一次签入的列表,其中包含最后一次在该日期签入的EMP的数量。前 chk_date 2014-05-14 25 2014-05-13 12 2014-05-11 5 等等 我使用表的右连接来获取每个emp的最后日期。它看起来像: R
Emp_id date_checkin hours
01 2014-05-14 6
01 2014-05-13 6
02 etc.
我想制作一份最后一次签入的列表,其中包含最后一次在该日期签入的EMP的数量。前
chk_date
2014-05-14 25
2014-05-13 12
2014-05-11 5
等等
我使用表的右连接来获取每个emp的最后日期。它看起来像:
RIGHT JOIN ( Select e.emp_id max(e.checkin_date) as chk_date
from empcheckin as e
group by chk_date) as T1
on T1.chk_datee = q.chk_date
此(内部)查询不会获取每个id的最后签入日期
问题是,既然我不需要其他表中的任何内容,那么我在主查询中查询什么?如果我查询所有的日期,我会浏览数千条记录,得到根本不重要的日期。
还有,我应该加入什么?我并不认为你需要加入,只是一些分组,比如:
SELECT t.last_date_chckin, COUNT(DISTINCT t.emp_id) AS CountEmp
FROM (
SELECT emp_id, MAX(checkin_date) AS last_date_checkin
FROM empcheckin
GROUP BY emp_id
) AS t
GROUP BY t.last_date_chckin
是否要统计签入次数或唯一签入的员工数?(如果员工1在一天内登记两次,这会为当天的计数贡献1或2吗?)。我只希望每个emp有1个(最新的)。那么,回答第一个问题,;独特的员工。这看起来很简单!我确实需要修改一下。我不知道这是因为我在使用MySql还是什么。它要求我在“派生表”中添加一个别名。因此,我添加了“作为T1,并以T1作为每个列名的前缀。谢谢你的回答,我想我学到了一些对未来查询有帮助的东西。你的意思是像我刚才添加的别名一样?这有点奇怪…没有别名这里没有歧义…至少我看到了。很高兴有用。