有没有更好的方法来处理这个问题? (Psql,使用 TOAD)

Is there a better way to handle this? (Psql, using TOAD)

这是通过从数据库中选择用户并删除任何不再存在的用户而传递给我的代码。现在它可以工作了,但我认为可能有更好的方法来处理这个问题。

如果有其他方法可以处理此请求,我只是征求意见。感谢您的任何输入。

    SELECT uvt.user_id, 
           ulp.user_id,
           uj.user_id,
           uw.user_id,
           pu.user_id
    FROM U_V_T uvt, 
         U_L_P ulp, 
         U_J uj,
         U_W uw,
         P_U pu 
    WHERE uvt.user_id NOT IN(SELECT user_id FROM users)
    AND ulp.user_id NOT IN(SELECT user_id FROM users)
    AND uj.user_id NOT IN(SELECT user_id FROM users)
    AND uw.user_id NOT IN(SELECT user_id FROM users)
    AND pu.user_id NOT IN(SELECT user_id FROM users)
    GROUP BY uvt.user_id,ulp.user_id, uj.user_id, uw.user_id, pu.user_id

这似乎是一种愚蠢的处理方式。您为什么想要此类用户的所有组合?

我倾向于将每个值放在单独的 并使用 union all:

select 'uvt' as which, user_id
from u_v_t
where user_id not in (select user_id from users)
union all
select 'ulp' as which, user_id
from u_l_p
where user_id not in (select user_id from users)
union all
select 'uj', user_id
from u_j
where user_id not in (select user_id from users)
union all
select 'uw', user_id
from u_w
where user_id not in (select user_id from users)
union all
select 'pu', user_id
from p_u
where user_id not in (select user_id from users);

这应该快得多并且具有基本相同的信息。