由于数据库中有很多数据,查询不起作用,我需要比较来自一个层和另一个层的值,从新层中找到那些不在旧层中的值.
THIS IS MY QUERY:个
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")
由于数据库中有很多数据,查询不起作用,我需要比较来自一个层和另一个层的值,从新层中找到那些不在旧层中的值.
THIS IS MY QUERY:个
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")
您可以使用left join
而不是子查询.
SELECT DISTINCT N.id_gs, N.nmbr_tusa
FROM "NEW_SLOY"."SHILPU" N
LEFT JOIN "OLD_SLOY"."SHILPU" O
ON N.id_gs = O.id_gs
WHERE N.date_contract >= '2023-05-01'
AND O.id_gs IS NULL;
当子查询中有很多行时.它将主查询中的每一行与子查询中的每一行进行比较.这导致了大量的比较.
you can read more about left join
here:
https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-left-join/