Jika Anda ingin memilih berdasarkan daftar As (bukan ALL As), lakukan seperti ini:
SELECT b_id
FROM ab
WHERE a_id IN (1,2)
GROUP BY b_id
HAVING COUNT(a_id) = 2
Ganti (1,2)
dengan daftar Anda dan 2
dalam klausa memiliki dengan jumlah item daftar.
Jika Anda mendapatkan daftar As dari subquery, Anda dapat melakukannya seperti itu (meskipun tidak di 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)
Di MySQL Anda harus memasukkan kode subquery Anda dua kali dan melepaskan klausa WITH.
Anda juga dapat menggunakan tabel sementara, yang kemudian akan mengarah pada pemilihan ALL As dari tabel sementara tersebut dan dengan demikian jawaban Gordon Linoff...