Si vous cherchez à sélectionner en fonction d'une liste d'As (et non de TOUS), faites-le comme ceci :
SELECT b_id
FROM ab
WHERE a_id IN (1,2)
GROUP BY b_id
HAVING COUNT(a_id) = 2
Remplacer (1,2)
avec votre liste et 2
dans la clause having avec le nombre d'éléments de la liste.
Si vous obtenez votre liste d'As à partir d'une sous-requête, vous pouvez le faire comme ça (pas dans MySQL, cependant...) :
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)
Dans MySQL, vous auriez à mettre votre code de sous-requête deux fois et à supprimer la clause WITH.
Vous pouvez également utiliser une table temporaire, ce qui conduirait alors à sélectionner ALL As à partir de cette table temporaire et donc la réponse de Gordon Linoff...