有两个表,“用户”和“列表”,以及将用户与列表相关联的多对多“订阅”表(因此具有外键user_id
和list_id
),是一个单一的SQL查询来查找没有任何特定list_id
订阅的用户(当然包括根本没有订阅的用户)?
答案 0 :(得分:2)
再次突破not exists
的时间:
select
u.user_id
from
users u
where
not exists (
select 1 from subscriptions s where s.user_id = u.user_id and s.list_id = N
)