Als u wilt selecteren op basis van een lijst met As (niet ALLE As), doe het dan als volgt:
SELECT b_id
FROM ab
WHERE a_id IN (1,2)
GROUP BY b_id
HAVING COUNT(a_id) = 2
Vervang (1,2)
met je lijst en 2
in de hebbende clausule met het aantal lijstitems.
Als je je lijst met As uit een subquery haalt, zou je het zo kunnen doen (niet in MySQL, hoewel...):
WITH subquery (
--subquery code here
)
SELECT b_id
FROM ab
WHERE a_id IN subquery
GROUP BY b_id
HAVING COUNT(a_id) = (SELECT COUNT(*) FROM subquery)
In MySQL zou u uw subquery-code twee keer moeten invoeren en de WITH-clausule moeten laten vallen.
Je zou ook een tijdelijke tabel kunnen gebruiken, die dan zou leiden tot het selecteren van ALLE As uit die tijdelijke tabel en dus het antwoord van Gordon Linoff...