[英]filtering results of group_concat, inner join query
新手在这里。 下面的代码在返回我想要的结果方面做得很好。 唯一的问题是我无法弄清楚如何仅返回某个日期范围(可在checkdate列中找到)。 我可以通过checkdate日期进行过滤的唯一方法是使用GROUP BY empchecks.checkdate并使用HAVING checkdate> = whatever。 但是我必须GROUP BY employee.enum。 我确定我缺少一些简单的东西。
SELECT employee_data.a,
employees_data.b, employee_data.c,
GROUP_CONCAT(empchecks.d
ORDER BY empchecks.checkdate
SEPARATOR '<br /> ')
AS checknum,
GROUP_CONCAT(empchecks.checkdate
ORDER BY empchecks.checkdate
SEPARATOR '<br /> ')
AS checkdate,
FROM employees
INNER JOIN empchecks ON employees.enum = empchecks.enum
GROUP BY empchecks.enum
您需要添加一个WHERE子句。 还有一个小小的更正AS checkdate
校验日期之后的最后一个逗号不应在那里。
SELECT employee_data.a, employees_data.b, employee_data.c,
GROUP_CONCAT(empchecks.d ORDER BY empchecks.checkdate SEPARATOR '<br /> ') as checknum,
GROUP_CONCAT(empchecks.checkdate ORDER BY empchecks.checkdate SEPARATOR '<br /> ') as checkdate
FROM employees
INNER JOIN empchecks
ON employees.enum = empchecks.enum
WHERE empchecks.checkdate >= @begin_date
AND empchecks.checkdate <= @end_date
GROUP BY empchecks.enum;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.