我有一个包含预定程序组的表。每个组由group_id表示,组中的每个程序都依赖于以前的程序来完成。但是,如果该组中的所有程序都已完成,我不需要安排任何事情。因此,如果包含程序的组全部完成,我需要过滤数据。 order定义了需要安排的程序的顺序
id, group_id, trigger_group_id, trigger, order
1 1 NULL SCHEDULED 0
2 1 1 COMPLETED 1
3 1 1 SCHEDULED 2
4 2 NULL COMPLETED 0
5 2 1 COMPLETED 1
如何过滤数据,以便不使用mysql返回第2组?
答案 0 :(得分:1)
选择相关子查询中组的最后一行,并比较trigger
值:
select *
from mytable t
where 'SCHEDULED' = (
select `trigger`
from mytable t2
where t2.group_id = t.group_id
order by t2.id desc
limit 1
)