Как преобразовать строки mysql в столбцы, у которых нет тегов

#mysql

#mysql

Вопрос:

У меня есть таблица mysql со строками, которая в основном соответствует времени входа и выхода пользователя, но у нее нет тега, для которого строка включена, а какая отсутствует.

Единственный способ выяснить, занимает минимальное и максимальное время для каждой даты для каждого пользователя, а затем выбирает их в двух столбцах. Но мне очень трудно добиться этого.. Пожалуйста, помогите

 My current data looks like this:

 ----------- -------------- ----------------------- 
| "User Id" | Date         | "Time"                |
 ----------- -------------- ----------------------- 
| userA     | "2019-04-22" | "2019-04-22 08:48:23" |
 ----------- -------------- ----------------------- 
| userA     | "2019-04-22" | "2019-04-22 17:47:51" |
 ----------- -------------- ----------------------- 
| userB     | "2019-04-22" | "2019-04-22 08:19:52" |
 ----------- -------------- ----------------------- 
| userB     | "2019-04-22" | "2019-04-22 18:06:27" |
 ----------- -------------- ----------------------- 
| userC     | "2019-04-22" | "2019-04-22 08:27:28" |
 ----------- -------------- ----------------------- 
| userc     | "2019-04-22" | "2019-04-22 17:19:25" |
 ----------- -------------- ----------------------- 

Desired Output is This:
 -------- -------------- ----------------------- ----------------------- 
| Userid | Date         | InTime                | OutTime               |
 -------- -------------- ----------------------- ----------------------- 
| userA  | "2019-04-22" | "2019-04-22 08:48:23" | "2019-04-22 17:47:51" |
 -------- -------------- ----------------------- ----------------------- 
| userB  | "2019-04-22" | "2019-04-22 08:19:52" | "2019-04-22 18:06:27" |
 -------- -------------- ----------------------- ----------------------- 
| userC  | "2019-04-22" | "2019-04-22 08:27:28" | "2019-04-22 17:19:25" |
 -------- -------------- ----------------------- ----------------------- 
  

Заранее спасибо.

Ответ №1:

используйте min() и max() с group by

 select Userid , Date, min(`time`) as intime,max(`time`) as outtime
from tablename
group by Userid , Date
  

Комментарии:

1. Нет, это не так. Проблема в том, что «нет тега, для которого строка включена, а какая отсутствует» — это (тривиальная) проблема XY.