MySQL查询将多个时间戳记录合并为一个

时间:2016-12-27 16:40:06

标签: mysql sql

您好我试图进行查询以大幅缩短员工徽章加盖表。

每张邮票都有一条记录,例如:

Badge   Date        Time    Type
430016  12/12/2016  09:34   In
430016  12/12/2016  13:02   Out
430016  12/12/2016  13:26   In
430016  12/12/2016  17:58   Out
430016  12/12/2016  18:01   In
430016  12/12/2016  19:02   Out

我需要一个mysql查询将它全部放在一个记录中,即

Badge    Date        In1    Out1    In2     Out2    In3    Out3
0430016  2/12/2016   09:34  13:02   13:26   17:58   18:01  19:02

2 个答案:

答案 0 :(得分:0)

我认为你正在寻找一个数据透视表。它将行转换为列。

这是一个教程http://www.artfulsoftware.com/infotree/qrytip.php?id=78

此外,stackoverflow上的另一篇文章非常相似 MySQL pivot table

答案 1 :(得分:0)

试试这个。

SELECT Badge, Date, GROUP_CONCAT(TIME ORDER BY TIME SEPARATOR ',') as times, 
GROUP_CONCAT(TYPE ORDER BY TIME SEPARATOR ',') as types
    FROM peoples_hobbies GROUP BY Badge

您可以使用分隔符','。

通过字符串操作获得结果