你 in (XXXXXX 还有 order by ?) 把 order by 去掉
select *
from po_standard st
where st.id in
(select ts.standard_id
from rl_task_standard ts
where ts.task_id in
(select t.id from po_task t where t.user_id = 'SYS_ROOT')
and rownum > 0
AND rownum <= 20
group by ts.standard_id
);
可以再嵌套查询一下 你这个 ts.standard_id
这个问题说起来有点复杂了 问题是在 in 上面。
in的逻辑实际上可以转化为一个hash join的逻辑。
如果使用了in 这种查询方法,order by 这个语句看不出来有什么用~