Om du vill välja baserat på en lista med As (inte ALLA Som), gör du så här:
SELECT b_id
FROM ab
WHERE a_id IN (1,2)
GROUP BY b_id
HAVING COUNT(a_id) = 2
Ersätt (1,2)
med din lista och 2
i ha-satsen med antalet listobjekt.
Om du får din lista med As från en underfråga kan du göra det så (dock inte i 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)
I MySQL måste du lägga in din underfrågakod två gånger och släppa WITH-satsen.
Du kan också använda en temporär tabell, vilket sedan skulle leda till att du väljer ALLA som från den tillfälliga tabellen och därmed Gordon Linoffs svar...