Ако искате да изберете въз основа на списък с As (не ВСИЧКИ As), тогава го направете по следния начин:
SELECT b_id
FROM ab
WHERE a_id IN (1,2)
GROUP BY b_id
HAVING COUNT(a_id) = 2
Заменете (1,2)
с вашия списък и 2
в клаузата за наличие с броя на елементите от списъка.
Ако получите вашия списък с As от подзаявка, можете да го направите така (не в MySQL обаче...):
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)
В MySQL ще трябва да поставите кода на подзаявката два пъти и да премахнете клаузата WITH.
Можете също така да използвате временна таблица, която след това ще доведе до избиране на ВСИЧКИ като от тази временна таблица и по този начин Гордън Линофс отговаря...