这是通过从数据库中选择用户并删除任何不再存在的用户而传递给我的代码。现在它可以工作,但我认为可能有更好的方法来处理它。
如果有其他方法可以处理此请求,我只是得到意见。感谢您的任何意见。
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
答案 0 :(得分:1)
看起来似乎是一种愚蠢的方式来解决这个问题。为什么你想要这些用户的每一个组合?
我倾向于将每个值放在单独的行上并使用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);
这应该更快,并且具有基本相同的信息。