我有一张填满用户需要完成的任务的表格。任务B无法启动,直到任务A完毕,所以我的表看起来是这样的: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
考虑看看史蒂夫,我希望选择工作1 - 3 taskid的条目,因为每一项工作(在同一份工作中)在他完成之前,现在是他完成这项工作任务的时候了。但是,我不想为史蒂夫选择工作2 - taskid 6,因为克里斯还没有完成工作2 - taskid 5.
有没有办法在一个查询中做到这一点?或者我必须得到Steve所有任务的列表,然后循环遍历每个任务,并验证它是每个完成时间为0的作业的最低任务ID?
在用户定义的函数中总是有一种方法可以做到这一点。但是我假设你需要一个本地查询,它选择由jobId分组的所有任务,其中taskID高于该作业的最高任务ID,其中completionTime不为零。 –
[subquery](http://dev.mysql.com/doc/refman/5.0/en/subqueries.html)或传统的'JOIN'是做这件事的正常方法。 –