PostgreSQL - 从列表中查找表中不存在的ID

use*_*544 5 sql postgresql

我有一个很大的 ID 列表,需要对照表进行检查以查找哪些 ID 不在表中。

我总是查询以选择表中但不在列表中的内容,例如:

SELECT user_id FROM user_base WHERE user_id NOT IN ('22','33','88','99');

我该如何做相反的事情?就像是:

SELECT user_id FROM ('22','33','88','99') WHERE user_id NOT IN user_base;

Gor*_*off 3

您可以使用left join

select v.*
from (values (22), (33), (88), (99)) v(user_id) 
where not exists (select 1 from user_base ub where ub.user_id = v.user_id);
Run Code Online (Sandbox Code Playgroud)