一个sql优化。求更简单的方法

前提条件,使用的Mysql数据库,

表名称:table01 表

表结构如下:
id ,resid, name ,dataid,public—status, status
id,合同id, 名字, 审批id , 数据端:0/平台:1,审批状态(1同意/0拒绝)

表数据示例:
1,10010,张三,10086, 0, 1 //数据方
2,10010,张三,1008611,0,1 //数据方
3, 10010,张三, ' ', 1,1 //平台方

求,只有数据端审批都同意的合同,才能查到平台的数据

我这里写了一个sql,

 SELECT
    * 
FROM
    table01 a
    INNER JOIN (
SELECT
        t1.resid,
        t1.num1 
    FROM
        ( SELECT resid, COUNT( 1 ) AS num1 FROM table01 WHERE public— STATUS = 0 AND STATUS = 1 GROUP BY resid ) t1
        INNER JOIN ( SELECT resid, COUNT( 1 ) AS num2 FROM table01 WHERE public— STATUS = 0 GROUP BY resid ) t2 ON t1.resid = t2.resid 
        AND t1.num1 = t2.num2 
    ) b 
    ON a.resid = b.resid
想求一下同志们,有没有更简单的方法

select *,(select count(*) as cnum from table01 as nt01  where nt01.id=t01.id and [public-status]=0 and status=0) as cnum from table01 as t01   where t01.id=10010 and t01.[public-status]=1 and  t01.cnum=0

没在环境里写,大体思路是这样,只需要一个子查询,确认当前数据方未审核通过的数量,当数量等于0时,查询平台方的数据。

select id from table01 group by id having sum(status)=count(status) and sum(status)>0;

好像都不适合谈恋爱