簡體   English   中英

過濾group_concat的結果,內部聯接查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM