사용자가 완료해야하는 작업으로 가득 찬 테이블이 있습니다. 작업 A가 완료 될 때까지 작업 B 시작할 수 없습니다, 그래서 내 테이블은 다음과 같이 보입니다 :mySQL - 이전 레코드 값을 기반으로 레코드를 선택할 수 있습니까?
taskID | jobID | assignedTo | taskName | completedTime
----------------------------------------------------------------------
1 1 Carl blah 1 11235512
2 1 Mike blah 2 13578423
3 1 Steve blah 3 0
4 2 Alex blah 4 12481235
5 2 Chris blah 5 0
6 2 Steve blah 6 0
스티브을 살펴보면, 내가 한 일을 선택하려는 것 - TASKID 3 항목을하기 때문에 모든 작업 (같은 일을하는 동안) 그 일이 끝나기 전에 그의 일을 할 시간이되었습니다. 크리스는 작업이 완료되지 않았기 때문에 스티브에 대한 TASKID 6 - - TASKID 5.
을 하나 개의 쿼리에서이 작업을 수행 할 수있는 방법이 있나요 그러나, 나는 작업 2를 선택하고 싶지 않아요? 아니면 Steve의 모든 작업 목록을 가져온 다음 각 작업을 반복하고 completedTime이 0 인 각 작업에 대해 가장 낮은 taskID인지 확인해야합니까?
사용자 정의 기능에서 항상이를 수행 할 수있는 방법이 있습니다. 하지만 스티브에 대한 모든 작업을 jobId별로 그룹화 한 네이티브 쿼리를 원한다고 가정합니다. 여기에서 taskID는이 작업의 가장 높은 taskID보다 1 높고 0이 아닌 completedTime이 있습니다. –
[subquery] (http://dev.mysql.com/doc/refman/5.0/en/subqueries.html) 또는 전통적인'JOIN'이이를 수행하는 일반적인 방법 일 것입니다. –