oracle sql 请帮忙优化一下
发布网友
发布时间:2022-04-07 22:56
我来回答
共5个回答
热心网友
时间:2022-04-08 00:26
SELECT tab1.id, tab1.NA
from tab1, (select distinct R.ID_SUP
from tab2 R left outer join ( select a.pk_id pk_id from tab2 a,tab3 b where a.PK_ID=b.ID_STUFF) T
on R.PK_ID=T.pk_id
where T.pk_id is null ) S
where tab1.id=S .ID_SUP
关键是not in要换成做外链接的写法才能够提高速度,in的话数据库会自己优化成连接操作
热心网友
时间:2022-04-08 01:44
select
id,na
from
tab1
where
id in
(select
a.pk_id
from tab2 a where not exists(select 1 from tab3 b where a.pk_id=b.id_stuff)
)
热心网友
时间:2022-04-08 03:18
试试这个
SELECT distinct a.id,a.NA from tab1 a ,tab2 b where a.id = b.ID_SUP
and not exists(select 1 from tab3 b where a.PK_ID=b.ID_STUFF))
热心网友
时间:2022-04-08 05:10
SELECT id,NA from tab1 where exists (
select ID_SUP from tab2 where PK_ID not exists(
select a.pk_id from tab2 a,tab3 b where a.PK_ID=b.ID_STUFF
) GROUP BY ID_SUP
)
热心网友
时间:2022-04-08 07:18
用EXISTS 和 NOT EXISTS 替代in和not in。NOT IN 此操作是强列推荐不使用的,因为它不能应用表的索引