由于数据库中有大量数据,查询不起作用,我需要将一层的值与另一层的值进行比较,找到新层中没有的值。
这是我的问题:
select distinct id_gs,nmbr_tusa
from "NEW_SLOY"."SHILPU"
where date_contract >= '2023-05-01'
and id_gs not in(select id_gs from "OLD_SLOY"."SHILPU")
由于数据库中有大量数据,查询不起作用,我需要将一层的值与另一层的值进行比较,找到新层中没有的值。
这是我的问题:
select distinct id_gs,nmbr_tusa
from "NEW_SLOY"."SHILPU"
where date_contract >= '2023-05-01'
and id_gs not in(select id_gs from "OLD_SLOY"."SHILPU")
1条答案
按热度按时间mzmfm0qo1#
可以使用
left join
代替子查询。当子查询中有很多行时。它将主查询中的每一行与子查询中的每一行进行比较。这导致了大量的比较。
你可以在这里阅读更多关于
left join
:https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-left-join/