2016-12-27 112 views
0

您好,我正在嘗試進行查詢以顯着縮短員工徽章蓋章表。MySQL查詢將多個時間戳記錄合併爲一個

他們有一個記錄每一枚郵票,例如:

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 
+0

'GROUP BY'將幫助你在這裏。 – Xatenev

+1

您是否要求查詢結果中有三對輸入/輸出列,或者您希望它根據每個徽章有多少輸入/輸出記錄而有所不同? –

+0

如果郵票數少於4,額外的字段可以是空的,重要的是,對於每個人,我可以通過一個mysql查詢擁有一個包含所有郵票而不是多個郵票的記錄 –

回答

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 

你可以通過字符串操作和分隔符','得到結果。