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

时间:2014-05-14 13:56:30

标签: mysql sql join

我有一个每个id有几行的表:

Emp_id  date_checkin  hours
01      2014-05-14     6
01      2014-05-13     6
02      etc.

我想制作一张最后一张签到的清单,其中列出了该日期最后一次登记的人数。实施例

chk_date    
2014-05-14      25
2014-05-13      12
2014-05-11      5

我在桌子上使用RIGHT JOIN来获取每个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的最后一个签入日期。

问题是,我在主查询中查询什么,因为我不需要其他表中的任何内容?如果我查询所有日期,我会通过数千条记录获取甚至不重要的日期。 另外,我JOIN ON了什么?

1 个答案:

答案 0 :(得分:1)

我真的不认为你需要一个JOIN,而只是一些GROUP BY,就像这样:

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