两个关联表关系是一对多,用多个记录中的特定的某一个记录中个别字段的值作为条件,筛选主表数据
场景:
1.一个会多级审核的申请,在最终审核后,管理员可以打回(流程记录中会有管理员打回的记录),要求按最终审核通过时间筛选申请记录。(由于管理员打回的问题,可能一个记录对应多个审核状态是最终审核通过的流程记录)。要求按最后的审核记录算。
SELECT DISTINCT
t.id,
t.laborun_code,
t.laborun_name
FROM
t_compensate_put t
left join (SELECT max(a.audit_time) as audit_time,a.compensate_put_id FROM t_compensate_put_audit a WHERE a.audit_status_code =‘27’ group by a.compensate_put_id) m1 on m1.compensate_put_id=t.id
where
1=1
and t.audit_status=‘9’ and m1.audit_time >= #{tCompensatePut.finalJudgeStartTime}
and t.audit_status=‘9’ and m1.audit_time <= #{tCompensatePut.finalJudgeEndTime}
t_compensate_put_audit 表中的audit_status_code ='27’表示流程记录是终审通过
t_compensate_put 表中audit_status='9’表示申请的当前状态时终审通过