右连接,不需要主表(mysql)

右连接,不需要主表(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

我有一个表,每个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的最后日期。它看起来像:

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作为每个列名的前缀。谢谢你的回答,我想我学到了一些对未来查询有帮助的东西。你的意思是像我刚才添加的别名一样?这有点奇怪…没有别名这里没有歧义…至少我看到了。很高兴有用。