Изглежда, че търсите условно агрегиране:
изберете u.user_id, u.username, min(случай, когато a.action ='IN', след това a.dateTime end) `in`, max(случай, когато a.action ='OUT', тогава a. dateTime end) `out`от потребител u вътрешно присъединяване user_attendance a on u.user_id =a.user_idgroup by u.user_id, u.username, date(a.dateTime)order by u.user_id, date(a.dateTime)код>
<предварителен код>| user_id | потребителско име | в | извън || ------- | -------- | ------------------- | ------------------- || 1 | тигър | 2019-10-01 08:00:00 | 2019-10-01 14:00:00 || 1 | тигър | 2019-10-02 08:00:00 | 2019-10-02 14:00:00 || 2 | пух | 2019-10-01 08:00:00 | 2019-10-01 14:00:00 || 2 | пух | 2019-10-02 08:00:00 | 2019-10-02 14:00:00 |