让我们说我有一个表Task_status如下:
id TaskId SubTaskId status
1 1 1 Complete
2 1 2 Complete
3 1 3 Complete
4 2 4 InProgress
5 2 5 Complete
我想找到所有子任务都完成的所有taskId。我该如何编写该查询?
答案 0 :(得分:2)
使用group by
和having
检查每个任务的行数是否等于具有完成状态的行数。
select taskId
from tbl
group by taskId
having count(*) = sum(status='Complete')