query SQL per trovare gli utenti che non dispongono di alcun abbonamento a un elenco specifico (molti-a-molti)

StackOverflow https://stackoverflow.com/questions/1827897

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)?

È stato utile?

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
scroll top