我对MySQL有疑问。我有一个具有以下字段的表:


工人名
日期
工作时间


好吧,如果我执行此查询:

SELECT WorkerName, Date, HoursWorked, SUM(HoursWorked) FROM myTable GROUP BY WorkerName


我有按工人名称BUT分组的字段,只有一行。我想在同一行中显示该工作人员在另一行中工作的所有工作日。

在PHP中实际上有一个While,它显示了所有工作日,但仅显示了第一天的小时数。

最佳答案

您可以使用GROUP_CONCAT聚合函数:

SELECT
  WorkerName,
  GROUP_CONCAT(Date) AS dates_worked,
  SUM(HoursWorked)
FROM
  myTable
GROUP BY
  WorkerName

10-05 19:27