Probabilmente il più semplice, il più pulito e il più veloce per soli due studenti :
SELECT count(*) AS ct
FROM student_club x
JOIN student_club y USING (stud_id)
WHERE x.club_id = 30
AND y.club_id = 50;
Non è necessario iscriversi allo student
table per questo - non appena conosci l'elenco di stud_id
ti interessa.
Per qualsiasi numero di studenti , la query di Martin è più conveniente. Puoi semplificare in modo simile:
SELECT count(*) AS ct
FROM (
SELECT stud_id
FROM student_club
WHERE club_id IN (30, 50)
GROUP BY 1
HAVING count(*) = 2 -- adapt to number of items in list
) x;
Richiede che (stud_id, club_id)
è unico ovviamente, e anche gli elementi dell'elenco sono unici.