2016-11-21 1 views
3

상태라는 테이블이 EntryTime이고 상태 = 2는 ExitTime입니다.두 열에 동일한 테이블 행을 사용하는 MySQL

+-----+------+------+------+--------+ 
    | n_id| notification_time | status | 
    +-----+------+------+------+--------+ 
    | 1 | 2016-11-17 16:44:02 | 2 | 
    | 1 | 2016-11-17 16:43:55 | 1 | 
    | 2 | 2016-11-17 13:05:47 | 1 | 
    | 2 | 2016-11-17 13:08:29 | 2 | 
    | 4 | 2016-11-17 14:09:02 | 1 | 
    | 4 | 2016-11-17 14:13:45 | 2 | 
    | 1 | 2016-11-17 22:05:02 | 1 | 
    | 1 | 2016-11-17 22:09:12 | 2 | 
    +----+------+------+-------+---------+ 

나는

+-----+------+------+------+--------+--------+--------+ 
    | n_id| Entry_time   | Exit_time    | 
    +-----+------+------+------+--------+--------+--------+ 
    | 1 | 2016-11-17 16:43:55 | 2016-11-17 16:44:02 | 
    | 2 | 2016-11-17 13:05:47 | 2016-11-17 13:08:29 | 
    | 4 | 2016-11-17 14:09:02 | 2016-11-17 14:13:45 | 
    | 1 | 2016-11-17 22:05:02 | 2016-11-17 22:09:12 | 
    +----+------+------+-------+---------+-------+--------+ 

이 작업을 수행하는 방법에 대한 어떤 제안이 같은 결과를 필요? 매우 감사합니다! n_id 반복적 필요의 다른 컬럼가 있다면 당신은 항상 당신이 sellf를 사용할 수있는 별개의 n_id의 몇 별칭

select a.n_id, a.notification_time as Entry_time, a.notification_time as Exit_time 
    from my_table a 
    inner join my_table b on a.n_id = b.n_id 
    where a.status = 1 
    and b.status = 2 

에 따라 조인이있는 경우

select n_id 
    , min(notification_time) as entry_time 
    , max(notification_time) as exit_time 
from Notifications 
group by n_id 
+1

id로 최소값과 최대 값을 그룹화하고 표시 할 수 있습니다. –

+1

n_id = 1 (4 항목)의 시간이 두 번입니까? – scaisEdge

+0

좋은 질문입니다. ID가 2 개를 초과하면 min() 및 max()가 도움이되지 않습니다. –

답변

2

행 간의 정확한 일치

+1

좋은 대답 .. upvoted .. – scaisEdge

1

: 당신은 그룹에 시도 할 수

관련 문제