2016-12-27 6 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 

Вы можете получить результат с помощью строковых манипуляций с разделителем ','.