query SQL per trovare gli utenti che non dispongono di alcun abbonamento a un elenco specifico (molti-a-molti)
-
11-09-2019 - |
Domanda
Avere due tabelle, "utenti" e "liste", e un molti-a-molti "iscrizioni" tabella relativa agli utenti di liste (avendo così chiavi esterne user_id
e list_id
), quale sarebbe una singola query SQL per trovare tutti gli utenti che non dispongono di alcun abbonamento con un list_id
specifica (naturalmente compresi gli utenti che non hanno abbonamenti a tutti)?
Soluzione
Il tempo di uscire di nuovo 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
)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow